#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_ |
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. | |