Comparability Concepts#

group comparability_concepts

Assortment of concept definitions requiring types to be comparable in various ways.

Example:#

#include <hyperion/mpl/concepts/comparable.h

using namespace hyperion::mpl::concepts;
struct not_comparable {};

static_assert(EqualityComparable<int, int>);
static_assert(!EqualityComparable<not_comparable, not_comparable>);
template<typename TLhs, typename TRhs>
concept EqualityComparable#
#include <hyperion/mpl/concepts/comparable.h>

Concept definition requiring that a TLhs is equality comparable with a TRhs

template<typename TLhs, typename TRhs>
concept InequalityComparable#
#include <hyperion/mpl/concepts/comparable.h>

Concept definition requiring that a TLhs is inequality comparable with a TRhs

template<typename TLhs, typename TRhs>
concept LessThanComparable#
#include <hyperion/mpl/concepts/comparable.h>

Concept definition requiring that a TLhs is less-than comparable with a TRhs

template<typename TLhs, typename TRhs>
concept LessThanOrEqualComparable#
#include <hyperion/mpl/concepts/comparable.h>

Concept definition requiring that a TLhs is less-than-or-equal comparable with a TRhs

template<typename TLhs, typename TRhs>
concept GreaterThanComparable#
#include <hyperion/mpl/concepts/comparable.h>

Concept definition requiring that a TLhs is greater-than comparable with a TRhs

template<typename TLhs, typename TRhs>
concept GreaterThanOrEqualComparable#
#include <hyperion/mpl/concepts/comparable.h>

Concept definition requiring that a TLhs is greater-than-or-equal comparable with a TRhs

template<typename TLhs, typename TRhs>
concept ThreeWayComparable#
#include <hyperion/mpl/concepts/comparable.h>

Concept definition requiring that a TLhs is three-way comparable with a TRhs