Chris@16
|
1 /*-----------------------------------------------------------------------------+
|
Chris@16
|
2 Copyright (c) 2010-2010: Joachim Faulhaber
|
Chris@16
|
3 +------------------------------------------------------------------------------+
|
Chris@16
|
4 Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
5 (See accompanying file LICENCE.txt or copy at
|
Chris@16
|
6 http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
7 +-----------------------------------------------------------------------------*/
|
Chris@16
|
8 #ifndef BOOST_ICL_CONCEPT_COMPARABLE_HPP_JOFA_100921
|
Chris@16
|
9 #define BOOST_ICL_CONCEPT_COMPARABLE_HPP_JOFA_100921
|
Chris@16
|
10
|
Chris@16
|
11 #include <boost/utility/enable_if.hpp>
|
Chris@16
|
12 #include <boost/icl/type_traits/is_icl_container.hpp>
|
Chris@16
|
13
|
Chris@16
|
14 namespace boost{ namespace icl
|
Chris@16
|
15 {
|
Chris@16
|
16
|
Chris@16
|
17 //==============================================================================
|
Chris@16
|
18 //= Equivalences and Orderings<Comparable>
|
Chris@16
|
19 //==============================================================================
|
Chris@16
|
20 template<class Type>
|
Chris@16
|
21 inline typename enable_if<is_icl_container<Type>, bool>::type
|
Chris@16
|
22 operator != (const Type& left, const Type& right)
|
Chris@16
|
23 { return !(left == right); }
|
Chris@16
|
24
|
Chris@16
|
25 template<class Type>
|
Chris@16
|
26 inline typename enable_if<is_icl_container<Type>, bool>::type
|
Chris@16
|
27 operator > (const Type& left, const Type& right)
|
Chris@16
|
28 { return right < left; }
|
Chris@16
|
29
|
Chris@16
|
30 /** Partial ordering which is induced by Compare */
|
Chris@16
|
31 template<class Type>
|
Chris@16
|
32 inline typename enable_if<is_icl_container<Type>, bool>::type
|
Chris@16
|
33 operator <= (const Type& left, const Type& right)
|
Chris@16
|
34 { return !(left > right); }
|
Chris@16
|
35
|
Chris@16
|
36 template<class Type>
|
Chris@16
|
37 inline typename enable_if<is_icl_container<Type>, bool>::type
|
Chris@16
|
38 operator >= (const Type& left, const Type& right)
|
Chris@16
|
39 { return !(left < right); }
|
Chris@16
|
40
|
Chris@16
|
41 }} // namespace boost icl
|
Chris@16
|
42
|
Chris@16
|
43 #endif
|
Chris@16
|
44
|
Chris@16
|
45
|