Ultra 0.9.4
Loading...
Searching...
No Matches
ultra::Strategy Concept Reference

#include <evolution_strategy.h>

Concept definition

template<class T>
concept ultra::Strategy =
requires
{
typename std::remove_cvref_t<T>::evaluator_type;
}
&& std::derived_from<
std::remove_cvref_t<T>,
Definition evolution_strategy.h:66
Definition evaluator.h:44
Definition evolution_strategy.h:260

Detailed Description

Concept identifying valid compile-time evolutionary strategies.

A type satisfies Strategy if, after removing cv/ref qualifiers:

  • it exposes an evaluator_type;
  • that type satisfies Evaluator;
  • the type derives from evolution_strategy<evaluator_type>.

This allows the concept to recognise both evolution_strategy<E> itself and concrete strategy classes derived from it, such as alps_es<E>, std_es<E>, and de_es<E>.