Chris@16: /*-----------------------------------------------------------------------------+ Chris@16: Copyright (c) 2010-2010: Joachim Faulhaber Chris@16: +------------------------------------------------------------------------------+ Chris@16: Distributed under the Boost Software License, Version 1.0. Chris@16: (See accompanying file LICENCE.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt) Chris@16: +-----------------------------------------------------------------------------*/ Chris@16: #ifndef BOOST_ICL_CONCEPT_COMPARABLE_HPP_JOFA_100921 Chris@16: #define BOOST_ICL_CONCEPT_COMPARABLE_HPP_JOFA_100921 Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost{ namespace icl Chris@16: { Chris@16: Chris@16: //============================================================================== Chris@16: //= Equivalences and Orderings Chris@16: //============================================================================== Chris@16: template Chris@16: inline typename enable_if, bool>::type Chris@16: operator != (const Type& left, const Type& right) Chris@16: { return !(left == right); } Chris@16: Chris@16: template Chris@16: inline typename enable_if, bool>::type Chris@16: operator > (const Type& left, const Type& right) Chris@16: { return right < left; } Chris@16: Chris@16: /** Partial ordering which is induced by Compare */ Chris@16: template Chris@16: inline typename enable_if, bool>::type Chris@16: operator <= (const Type& left, const Type& right) Chris@16: { return !(left > right); } Chris@16: Chris@16: template Chris@16: inline typename enable_if, bool>::type Chris@16: operator >= (const Type& left, const Type& right) Chris@16: { return !(left < right); } Chris@16: Chris@16: }} // namespace boost icl Chris@16: Chris@16: #endif Chris@16: Chris@16: