3 #include <geneial/namespaces.h>
4 #include <geneial/core/population/management/BaseManager.h>
7 geneial_private_namespace(geneial)
9 geneial_private_namespace(algorithm)
11 geneial_private_namespace(stopping_criteria)
13 using ::geneial::utility::Printable;
14 using ::geneial::population::management::BaseManager;
16 geneial_export_namespace
20 template<
typename FITNESS_TYPE>
21 class BaseStoppingCriterion:
public Printable,
public std::enable_shared_from_this<BaseStoppingCriterion<FITNESS_TYPE> >
25 using ptr = std::shared_ptr<BaseStoppingCriterion<FITNESS_TYPE>>;
26 using const_ptr =std::shared_ptr<const BaseStoppingCriterion<FITNESS_TYPE>>;
28 virtual ~BaseStoppingCriterion()
32 virtual void print(std::ostream& os)
const = 0;
36 virtual bool wasReached(BaseManager<FITNESS_TYPE> &manager) = 0;