27 #ifndef RELATION_HPP_INCLUDED
28 #define RELATION_HPP_INCLUDED
30 #include <type_traits>
41 template <
class N,
class M>
struct less;
51 template <
class N,
class M>
struct greater;
62 template <
class Val,
class...Args>
63 struct max_ :
max_<Val, typename max_<Args...>::type> {};
72 template <
class Val1,
class Val2>
73 struct max_<Val1, Val2> : std::conditional<
74 greater<Val1, Val2>::value,
87 template <
class Val,
class...Args>
88 struct min_ :
min_<Val, typename min_<Args...>::type> {};
97 template <
class Val1,
class Val2>
98 struct min_<Val1, Val2> : std::conditional<
99 less<Val1, Val2>::value,