69 template <
typename T >
71 { std::numeric_limits< T >::min() } -> std::convertible_to< T >;
72 { std::numeric_limits< T >::max() } -> std::convertible_to< T >;
73 { std::numeric_limits< T >::infinity() } -> std::convertible_to< T >;
74 { std::numeric_limits< T >::is_specialized } -> std::convertible_to< bool >;
97 template <
typename T >
99 = std::is_arithmetic_v< T >
104 std::copyable< T > && std::movable< T > &&
107 std::default_initializable< T > &&
110 std::constructible_from< T, int > && std::constructible_from< T, double > &&
114 { a + b } -> std::convertible_to< T >;
115 { a - b } -> std::convertible_to< T >;
116 { a * b } -> std::convertible_to< T >;
117 { a / b } -> std::convertible_to< T >;
118 { a += b } -> std::same_as< T& >;
119 { a *= b } -> std::same_as< T& >;
120 { -a } -> std::convertible_to< T >;
124 std::totally_ordered< T >);
147 template <
typename T >
Concept checking that std::numeric_limits is specialized for a type.
Concept defining requirements for scalar types used as GUM_SCALAR.
Complete concept for GUM_SCALAR template parameter.
gum is the global namespace for all aGrUM entities