1#ifndef LIBSBX_MATH_CONCEPTS_HPP_
2#define LIBSBX_MATH_CONCEPTS_HPP_
11template<
typename Type>
12concept numeric = (std::is_integral_v<Type> && !std::is_same_v<Type, bool>) || std::is_floating_point_v<Type>;
16template<
typename Type>
19template<
typename Type>
22template<
typename Type>
23concept floating_point = is_floating_point_v<Type>;
27template<
typename Type>
28struct is_integral : std::bool_constant<std::is_integral_v<Type> && !std::is_same_v<Type, bool>> { };
30template<
typename Type>
33template<
typename Type>
34concept integral = is_integral_v<Type>;
36template<
typename Type>
39template<
typename Type>
42template<
typename Type>
43concept unsigned_integral = is_unsigned_integral_v<Type>;
47template<
typename Type>
48struct is_scalar : std::bool_constant<is_floating_point_v<Type> || is_integral_v<Type>> { };
50template<
typename Type>
53template<
typename Type>
54concept scalar = is_scalar_v<Type>;
Definition: concepts.hpp:17
Definition: concepts.hpp:28
Definition: concepts.hpp:48
Definition: concepts.hpp:37