20 std::is_member_function_pointer_v<
decltype(&T::ice_tuple)> && !std::is_polymorphic_v<T>,
22 inline bool operator<(
const T& lhs,
const T& rhs)
24 return lhs.ice_tuple() < rhs.ice_tuple();
35 std::is_member_function_pointer_v<
decltype(&T::ice_tuple)> && !std::is_polymorphic_v<T>,
37 inline bool operator<=(
const T& lhs,
const T& rhs)
39 return lhs.ice_tuple() <= rhs.ice_tuple();
50 std::is_member_function_pointer_v<
decltype(&T::ice_tuple)> && !std::is_polymorphic_v<T>,
52 inline bool operator>(
const T& lhs,
const T& rhs)
54 return lhs.ice_tuple() > rhs.ice_tuple();
65 std::is_member_function_pointer_v<
decltype(&T::ice_tuple)> && !std::is_polymorphic_v<T>,
67 inline bool operator>=(
const T& lhs,
const T& rhs)
69 return lhs.ice_tuple() >= rhs.ice_tuple();
80 std::is_member_function_pointer_v<
decltype(&T::ice_tuple)> && !std::is_polymorphic_v<T>,
82 inline bool operator==(
const T& lhs,
const T& rhs)
84 return lhs.ice_tuple() == rhs.ice_tuple();
95 std::is_member_function_pointer_v<
decltype(&T::ice_tuple)> && !std::is_polymorphic_v<T>,
97 inline bool operator!=(
const T& lhs,
const T& rhs)
99 return lhs.ice_tuple() != rhs.ice_tuple();