Tenho a seguinte turma:
template<typename Population, typename... Operators> class GA
{
public:
template<typename Evaluator,
typename std::enable_if_t<
std::is_same_v<Evaluator, Evaluator<Operators...>>>>
void EvaluatePopulation(Evaluator& evaluator)
{
evaluator.Evaluate();
}
};
Isso não compila devido a EvaluatePopulation
uma declaração incorreta.
Como posso especificar que o EvaluatePopulation
método pode ser chamado somente com Evaluator
uma classe que foi inicializada com o mesmo Operators...
nome da GA
classe?