3 #include <geneial/namespaces.h>
4 #include <geneial/core/population/chromosome/BaseChromosome.h>
5 #include <geneial/core/population/management/BaseManager.h>
6 #include <geneial/core/population/management/ResourcePool.h>
7 #include <geneial/utility/mixins/Buildable.h>
9 geneial_private_namespace(geneial)
11 geneial_private_namespace(population)
13 geneial_private_namespace(chromosome)
15 using ::geneial::population::management::BaseManager;
16 using ::geneial::population::management::ResourcePool;
17 using ::geneial::utility::Buildable;
19 geneial_export_namespace
22 template<
typename FITNESS_TYPE>
23 class BaseChromosomeFactory :
public virtual Buildable<BaseChromosomeFactory<FITNESS_TYPE>>
30 CREATE_VALUES, LET_UNPOPULATED
34 virtual ~BaseChromosomeFactory()
38 inline typename BaseChromosome<FITNESS_TYPE>::ptr createChromosome(
39 PopulateBehavior populateValues = CREATE_VALUES
42 return std::move(doCreateChromosome(populateValues));
45 class Builder :
public Buildable<BaseChromosomeFactory<FITNESS_TYPE>>::Builder
50 BaseChromosomeFactory()
54 virtual typename BaseChromosome<FITNESS_TYPE>::ptr doCreateChromosome(
55 PopulateBehavior populateValues