GENEIAL  0.2=/
 All Classes Pages
BaseChoosingOperation.h
1 #pragma once
2 
3 #include <geneial/namespaces.h>
4 
5 #include <geneial/utility/mixins/Buildable.h>
6 #include <geneial/core/population/Population.h>
7 
8 geneial_private_namespace(geneial)
9 {
10 geneial_private_namespace(operation)
11 {
12 geneial_private_namespace(choosing)
13 {
14 using ::geneial::population::Population;
15 using ::geneial::utility::Buildable;
16 
17 geneial_export_namespace
18 {
19 
20 template<typename FITNESS_TYPE>
21 class BaseChoosingOperation : public Buildable<BaseChoosingOperation<FITNESS_TYPE>>
22 {
23 protected:
24  BaseChoosingOperation()
25  {
26  }
27 
28 public:
29  virtual ~BaseChoosingOperation()
30  {
31  }
32 
33  virtual typename Population<FITNESS_TYPE>::chromosome_container doChoose(
34  const typename Population<FITNESS_TYPE>::chromosome_container &chromosomeInputSet) const = 0;
35 
36  class Builder : Buildable<BaseChoosingOperation<FITNESS_TYPE>>::Builder
37  {
38  };
39 
40 };
41 
42 } /* geneial_export_namespace */
43 } /* private namespace choosing */
44 } /* private namespace operation */
45 } /* private namespace geneial */