/usr/include/boost/hana/detail/operators
Edit: /usr/include/boost/hana/detail/operators/orderable.hpp (2405B)
/*!
@file
Defines operators for Orderables.
@copyright Louis Dionne 2013-2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_HANA_DETAIL_OPERATORS_ORDERABLE_HPP
#define BOOST_HANA_DETAIL_OPERATORS_ORDERABLE_HPP
#include
#include
#include
#include
#include
#include
#include
BOOST_HANA_NAMESPACE_BEGIN namespace detail {
template
struct orderable_operators {
static constexpr bool value = false;
};
namespace operators {
template ::type>::value ||
detail::orderable_operators::type>::value
>::type>
constexpr auto operator<(X&& x, Y&& y)
{ return hana::less(static_cast(x), static_cast(y)); }
template ::type>::value ||
detail::orderable_operators::type>::value
>::type>
constexpr auto operator>(X&& x, Y&& y)
{ return hana::greater(static_cast(x), static_cast(y)); }
template ::type>::value ||
detail::orderable_operators::type>::value
>::type>
constexpr auto operator<=(X&& x, Y&& y)
{ return hana::less_equal(static_cast(x), static_cast(y)); }
template ::type>::value ||
detail::orderable_operators::type>::value
>::type>
constexpr auto operator>=(X&& x, Y&& y)
{ return hana::greater_equal(static_cast(x), static_cast(y)); }
} // end namespace operators
} BOOST_HANA_NAMESPACE_END
#endif // !BOOST_HANA_DETAIL_OPERATORS_ORDERABLE_HPP