Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Compare.h File Reference
#include "Stroika/Foundation/StroikaPreComp.h"
#include <compare>
#include <functional>
#include <memory>
#include <optional>
#include <type_traits>
#include "Stroika/Foundation/Common/Common.h"
#include "Stroika/Foundation/Common/Concepts.h"
#include "Stroika/Foundation/Common/Enumeration.h"
#include "Stroika/Foundation/Common/TypeHints.h"
#include "Compare.inl"

Go to the source code of this file.

Classes

struct  Stroika::Foundation::Common::ComparisonRelationDeclarationBase< KIND >
 
struct  Stroika::Foundation::Common::ComparisonRelationDeclaration< KIND, ACTUAL_COMPARER >
 
struct  Stroika::Foundation::Common::EqualsComparerAdapter< ARG_T, BASE_COMPARER >
 Use this to wrap any basic comparer, and produce an Equals comparer. More...
 
struct  Stroika::Foundation::Common::InOrderComparerAdapter< T, BASE_COMPARER >
 Use this to wrap any basic comparer, and produce a Less comparer. More...
 
struct  Stroika::Foundation::Common::ThreeWayComparerAdapter< T, BASE_COMPARER >
 Use this to wrap a basic (ITotallyOrderingComparer) comparer, and produce a Three-Way comparer. More...
 
struct  Stroika::Foundation::Common::OptionalThreeWayComparer< ARG_T, TCOMPARER >
 ThreeWayComparer for optional types, like builtin one, except this lets you pass in explicit 'T' comparer for the T in optional<T> More...
 

Namespaces

namespace  Stroika::Foundation
 
namespace  Stroika::Foundation::Common
 
namespace  Stroika::Foundation::Common::Private_
 

Concepts

concept  Stroika::Foundation::Common::IPotentiallyComparer
 
concept  Stroika::Foundation::Common::IComparer
 
concept  Stroika::Foundation::Common::IEqualsComparer
 
concept  Stroika::Foundation::Common::IInOrderComparer
 
concept  Stroika::Foundation::Common::IThreeWayComparer
 
concept  Stroika::Foundation::Common::ITotallyOrderingComparer
 

Enumerations

enum class  Stroika::Foundation::Common::ComparisonRelationType { }
 

Functions

template<typename FUNCTOR >
constexpr Common::ComparisonRelationDeclaration< ComparisonRelationType::eEquals, remove_cvref_t< FUNCTOR > > Stroika::Foundation::Common::DeclareEqualsComparer (FUNCTOR &&f)
 DeclareEqualsComparer () marks a FUNCTOR (lambda or not) as being a FUNCTOR which compares for equality.
 
template<typename FUNCTOR >
constexpr Common::ComparisonRelationDeclaration< ComparisonRelationType::eStrictInOrder, remove_cvref_t< FUNCTOR > > Stroika::Foundation::Common::DeclareInOrderComparer (FUNCTOR &&f)
 DeclareInOrderComparer () marks a FUNCTOR (lambda or not) as being a FUNCTOR which compares for in-order.
 
template<typename FROM_INT_TYPE >
constexpr strong_ordering Stroika::Foundation::Common::CompareResultNormalizer (FROM_INT_TYPE f)
 
constexpr strong_ordering Stroika::Foundation::Common::ReverseCompareOrder (strong_ordering so)
 

Variables

template<typename ARG_T , IComparer< ARG_T > COMPARE_FUNCTION>
static constexpr ComparisonRelationType Stroika::Foundation::Common::ExtractComparisonTraits_v
 ExtractComparisonTraits_v<> extracts the @ComparisonRelationType for the given argument comparer.
 

Detailed Description

Note
Code-Status: Beta

Definition in file Compare.h.