39 typename T::objective_function_type;
41 typename T::objective_function_type>;
43 typename T::variable_type;
44 requires std::is_same_v<
typename T::variable_type,
45 typename T::objective_function_type::variable_type>;
47 typename T::value_type;
48 requires std::is_same_v<
typename T::value_type,
49 typename T::objective_function_type::value_type>;
51 requires requires(T& obj,
const typename T::variable_type& init_variable) {
52 { obj.init(init_variable) };
55 requires requires(T& obj,
const typename T::variable_type& direction) {
56 { obj.search(direction) };
59 requires requires(T& obj) {
65 requires requires(
const T& obj) {
69 typename T::objective_function_type>;