3 #include <geneial/namespaces.h>
4 #include <geneial/core/operations/coupling/BaseCouplingOperation.h>
9 geneial_private_namespace(geneial)
11 geneial_private_namespace(operation)
13 geneial_private_namespace(coupling)
15 using ::geneial::population::Population;
16 using ::geneial::operation::crossover::BaseCrossoverOperation;
17 using ::geneial::operation::coupling::BaseCouplingOperation;
18 using ::geneial::operation::selection::BaseSelectionOperation;
19 using ::geneial::population::management::BaseManager;
21 geneial_export_namespace
24 template<
typename FITNESS_TYPE>
25 typename BaseCouplingOperation<FITNESS_TYPE>::offspring_result_set::size_type BaseCouplingOperation<FITNESS_TYPE>::copyUnlessMaximumReached(
26 offspring_result_set &dest,
27 const typename BaseCrossoverOperation<FITNESS_TYPE>::crossover_result_set &input,
28 const typename BaseCrossoverOperation<FITNESS_TYPE>::crossover_result_set::size_type limit)
const
31 typedef typename BaseCrossoverOperation<FITNESS_TYPE>::crossover_result_set children_container;
33 auto backInserter = std::back_inserter(dest);
35 const auto toCopy = std::min<typename children_container::size_type>(input.size(),limit);
37 std::move(input.begin(),input.begin()+toCopy,backInserter);