5#ifndef ICE_COMPARABLE_H
6#define ICE_COMPARABLE_H
19template<
typename T,
typename U>
38template<
typename T,
typename U>
57template<
typename T,
typename U>
69template<
typename T,
typename U>
81template<
typename T,
typename U>
93template<
typename T,
typename U>
99#ifdef ICE_CPP11_MAPPING
105template<
typename T,
template<
typename>
class Compare>
112 bool operator()(
const T& lhs,
const T& rhs)
const
116 return Compare<typename T::element_type>()(*lhs, *rhs);
120 return Compare<bool>()(
static_cast<const bool>(lhs),
static_cast<const bool>(rhs));
135template<
class C,
typename = std::enable_if<std::is_member_function_po
inter<decltype(&C::ice_tuple)>::value>>
136bool operator<(
const C& lhs,
const C& rhs)
138 return lhs.ice_tuple() < rhs.ice_tuple();
147template<
class C,
typename = std::enable_if<std::is_member_function_po
inter<decltype(&C::ice_tuple)>::value>>
148bool operator<=(
const C& lhs,
const C& rhs)
150 return lhs.ice_tuple() <= rhs.ice_tuple();
159template<
class C,
typename = std::enable_if<std::is_member_function_po
inter<decltype(&C::ice_tuple)>::value>>
160bool operator>(
const C& lhs,
const C& rhs)
162 return lhs.ice_tuple() > rhs.ice_tuple();
171template<
class C,
typename = std::enable_if<std::is_member_function_po
inter<decltype(&C::ice_tuple)>::value>>
172bool operator>=(
const C& lhs,
const C& rhs)
174 return lhs.ice_tuple() >= rhs.ice_tuple();
183template<
class C,
typename = std::enable_if<std::is_member_function_po
inter<decltype(&C::ice_tuple)>::value>>
184bool operator==(
const C& lhs,
const C& rhs)
186 return lhs.ice_tuple() == rhs.ice_tuple();
195template<
class C,
typename = std::enable_if<std::is_member_function_po
inter<decltype(&C::ice_tuple)>::value>>
196bool operator!=(
const C& lhs,
const C& rhs)
198 return lhs.ice_tuple() != rhs.ice_tuple();
Definition BuiltinSequences.h:113
bool targetNotEqualTo(const T &lhs, const U &rhs)
Compares the contents of two smart pointers.
Definition Comparable.h:94
bool targetEqualTo(const T &lhs, const U &rhs)
Compares the contents of two smart pointers.
Definition Comparable.h:20
bool targetGreater(const T &lhs, const U &rhs)
Compares the contents of two smart pointers.
Definition Comparable.h:58
bool targetLess(const T &lhs, const U &rhs)
Compares the contents of two smart pointers.
Definition Comparable.h:39
bool targetGreaterEqual(const T &lhs, const U &rhs)
Compares the contents of two smart pointers.
Definition Comparable.h:82
bool targetLessEqual(const T &lhs, const U &rhs)
Compares the contents of two smart pointers.
Definition Comparable.h:70