40concept formula =
requires(T& obj,
const T& const_obj) {
41 typename T::problem_type;
42 typename T::variable_type;
43 typename T::scalar_type;
46 requires std::is_same_v<
typename T::variable_type,
47 typename T::problem_type::variable_type>;
48 requires std::is_same_v<
typename T::scalar_type,
49 typename T::problem_type::scalar_type>;
55 { T(std::declval<typename T::problem_type>()) };
58 obj.step(std::declval<typename T::scalar_type>() ,
59 std::declval<typename T::scalar_type>() ,
60 std::declval<typename T::variable_type>() ,
61 std::declval<typename T::variable_type&>() )