Horizon
|
#include <initializer_list>
#include <utility>
#include <type_traits>
#include <concepts/swap.hpp>
#include <concepts/type_traits.hpp>
Go to the source code of this file.
Classes | |
struct | concepts::return_t_< typename > |
Macros | |
#define | CPP_PP_IGNORE_CXX2A_COMPAT_BEGIN |
#define | CPP_PP_IGNORE_CXX2A_COMPAT_END |
#define | CPP_CXX_CONCEPTS 0L |
#define | CPP_PP_CAT_(X, ...) X ## __VA_ARGS__ |
#define | CPP_PP_CAT(X, ...) CPP_PP_CAT_(X, __VA_ARGS__) |
#define | CPP_PP_EVAL_(X, ARGS) X ARGS |
#define | CPP_PP_EVAL(X, ...) CPP_PP_EVAL_(X, (__VA_ARGS__)) |
#define | CPP_PP_EVAL2_(X, ARGS) X ARGS |
#define | CPP_PP_EVAL2(X, ...) CPP_PP_EVAL2_(X, (__VA_ARGS__)) |
#define | CPP_PP_EXPAND(...) __VA_ARGS__ |
#define | CPP_PP_EAT(...) |
#define | CPP_PP_FIRST(LIST) CPP_PP_FIRST_ LIST |
#define | CPP_PP_FIRST_(...) __VA_ARGS__ CPP_PP_EAT |
#define | CPP_PP_SECOND(LIST) CPP_PP_SECOND_ LIST |
#define | CPP_PP_SECOND_(...) CPP_PP_EXPAND |
#define | CPP_PP_CHECK(...) CPP_PP_EXPAND(CPP_PP_CHECK_N(__VA_ARGS__, 0,)) |
#define | CPP_PP_CHECK_N(x, n, ...) n |
#define | CPP_PP_PROBE(x) x, 1, |
#define | CPP_PP_PROBE_N(x, n) x, n, |
#define | CPP_PP_IS_PAREN(x) CPP_PP_CHECK(CPP_PP_IS_PAREN_PROBE x) |
#define | CPP_PP_IS_PAREN_PROBE(...) CPP_PP_PROBE(~) |
#define | CPP_CXX_VA_OPT 0 |
#define | CPP_PP_COUNT(...) |
#define | CPP_PP_COUNT_( _01, _02, _03, _04, _05, _06, _07, _08, _09, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, N, ...) N |
#define | CPP_PP_IIF(BIT) CPP_PP_CAT_(CPP_PP_IIF_, BIT) |
#define | CPP_PP_IIF_0(TRUE, ...) __VA_ARGS__ |
#define | CPP_PP_IIF_1(TRUE, ...) TRUE |
#define | CPP_PP_LPAREN ( |
#define | CPP_PP_RPAREN ) |
#define | CPP_PP_NOT(BIT) CPP_PP_CAT_(CPP_PP_NOT_, BIT) |
#define | CPP_PP_NOT_0 1 |
#define | CPP_PP_NOT_1 0 |
#define | CPP_PP_EMPTY() |
#define | CPP_PP_COMMA() , |
#define | CPP_PP_LBRACE() { |
#define | CPP_PP_RBRACE() } |
#define | CPP_PP_COMMA_IIF(X) CPP_PP_IIF(X)(CPP_PP_EMPTY, CPP_PP_COMMA)() |
#define | CPP_PP_FOR_EACH(M, ...) CPP_PP_FOR_EACH_N(CPP_PP_COUNT(__VA_ARGS__), M, __VA_ARGS__) |
#define | CPP_PP_FOR_EACH_N(N, M, ...) CPP_PP_CAT(CPP_PP_FOR_EACH_, N)(M, __VA_ARGS__) |
#define | CPP_PP_FOR_EACH_1(M, _1) M(_1) |
#define | CPP_PP_FOR_EACH_2(M, _1, _2) M(_1), M(_2) |
#define | CPP_PP_FOR_EACH_3(M, _1, _2, _3) M(_1), M(_2), M(_3) |
#define | CPP_PP_FOR_EACH_4(M, _1, _2, _3, _4) M(_1), M(_2), M(_3), M(_4) |
#define | CPP_PP_FOR_EACH_5(M, _1, _2, _3, _4, _5) M(_1), M(_2), M(_3), M(_4), M(_5) |
#define | CPP_PP_FOR_EACH_6(M, _1, _2, _3, _4, _5, _6) M(_1), M(_2), M(_3), M(_4), M(_5), M(_6) |
#define | CPP_PP_FOR_EACH_7(M, _1, _2, _3, _4, _5, _6, _7) M(_1), M(_2), M(_3), M(_4), M(_5), M(_6), M(_7) |
#define | CPP_PP_FOR_EACH_8(M, _1, _2, _3, _4, _5, _6, _7, _8) M(_1), M(_2), M(_3), M(_4), M(_5), M(_6), M(_7), M(_8) |
#define | CPP_PP_PROBE_EMPTY_PROBE_CPP_PP_PROBE_EMPTY CPP_PP_PROBE(~) |
#define | CPP_PP_PROBE_EMPTY() |
#define | CPP_PP_IS_NOT_EMPTY(...) |
#define | CPP_BOOL(...) __VA_ARGS__ |
#define | CPP_TRUE_FN CPP_true_fn(::concepts::detail::xNil{}) |
#define | CPP_NOT(...) (!(__VA_ARGS__)) |
#define | CPP_assert(...) |
#define | CPP_assert_msg static_assert |
#define | CPP_concept CPP_INLINE_VAR constexpr bool |
#define | CPP_and CPP_and_sfinae |
#define | CPP_template CPP_template_sfinae |
#define | CPP_template_def CPP_template_def_sfinae |
#define | CPP_member CPP_member_sfinae |
#define | CPP_auto_member CPP_member_sfinae |
#define | CPP_ctor CPP_ctor_sfinae |
#define | CPP_concept_ref(NAME, ...) |
#define | CPP_TEMPLATE_AUX_ CPP_TEMPLATE_SFINAE_AUX_ |
INTERNAL ONLY. | |
#define | CPP_template_sfinae(...) |
#define | CPP_TEMPLATE_SFINAE_PROBE_CONCEPT_concept CPP_PP_PROBE(~) |
INTERNAL ONLY. | |
#define | CPP_TEMPLATE_SFINAE_AUX_WHICH_(FIRST, ...) |
INTERNAL ONLY. More... | |
#define | CPP_TEMPLATE_SFINAE_AUX_(...) |
INTERNAL ONLY. More... | |
#define | CPP_TEMPLATE_SFINAE_AUX_0(...) |
INTERNAL ONLY. More... | |
#define | CPP_TEMPLATE_SFINAE_AUX_1(DECL, ...) |
INTERNAL ONLY. More... | |
#define | CPP_CONCEPT_NAME_(DECL) |
INTERNAL ONLY. More... | |
#define | CPP_CONCEPT_PARAMS_(DECL) CPP_PP_EVAL(CPP_PP_SECOND, CPP_EAT_CONCEPT_(DECL)) |
INTERNAL ONLY. | |
#define | CPP_EAT_CONCEPT_(DECL) CPP_PP_CAT(CPP_EAT_CONCEPT_, DECL) |
INTERNAL ONLY. | |
#define | CPP_EAT_CONCEPT_concept |
INTERNAL ONLY. | |
#define | CPP_and_sfinae && CPP_BOOL(CPP_true), int> = 0, std::enable_if_t< |
INTERNAL ONLY. | |
#define | CPP_template_def_sfinae(...) template<__VA_ARGS__ CPP_TEMPLATE_DEF_SFINAE_AUX_ |
INTERNAL ONLY. | |
#define | CPP_TEMPLATE_DEF_SFINAE_AUX_(...) |
INTERNAL ONLY. More... | |
#define | CPP_and_sfinae_def && CPP_BOOL(CPP_true), int>, std::enable_if_t< |
INTERNAL ONLY. | |
#define | CPP_TEMPLATE_SFINAE_AUX_3_requires |
INTERNAL ONLY. | |
#define | CPP_member_sfinae CPP_broken_friend_member |
INTERNAL ONLY. | |
#define | CPP_ctor_sfinae(TYPE) |
INTERNAL ONLY. More... | |
#define | CPP_CTOR_SFINAE_IMPL_1_(...) |
INTERNAL ONLY. More... | |
#define | CPP_CTOR_SFINAE_PROBE_NOEXCEPT_noexcept CPP_PP_PROBE(~) |
INTERNAL ONLY. | |
#define | CPP_CTOR_SFINAE_MAKE_PROBE(FIRST, ...) CPP_PP_CAT(CPP_CTOR_SFINAE_PROBE_NOEXCEPT_, FIRST) |
INTERNAL ONLY. | |
#define | CPP_CTOR_SFINAE_REQUIRES(...) |
INTERNAL ONLY. More... | |
#define | CPP_CTOR_SFINAE_REQUIRES_0(...) |
INTERNAL ONLY. More... | |
#define | CPP_CTOR_SFINAE_REQUIRES_1(...) |
INTERNAL ONLY. More... | |
#define | CPP_CTOR_SFINAE_EAT_NOEXCEPT_noexcept(...) |
INTERNAL ONLY. | |
#define | CPP_CTOR_SFINAE_SHOW_NOEXCEPT_noexcept(...) |
INTERNAL ONLY. More... | |
#define | CPP_broken_friend_ret(...) |
#define | CPP_BROKEN_FRIEND_RETURN_TYPE_AUX_(...) |
INTERNAL ONLY. More... | |
#define | CPP_TEMPLATE_AUX_2_requires |
INTERNAL ONLY. | |
#define | CPP_BROKEN_FRIEND_RETURN_TYPE_AUX_3_(...) (__VA_ARGS__ && CPP_TRUE_FN)>> |
INTERNAL ONLY. | |
#define | CPP_broken_friend_member |
INTERNAL ONLY. More... | |
#define | CPP_requires(NAME, REQS) |
#define | CPP_requires_ref(NAME, ...) |
#define | CPP_REQUIRES_requires(...) (__VA_ARGS__) -> decltype CPP_REQUIRES_RETURN_ |
INTERNAL ONLY. | |
#define | CPP_REQUIRES_RETURN_(...) (__VA_ARGS__, void()) {} |
INTERNAL ONLY. | |
#define | CPP_REQUIRES_AUX_(NAME, ...) |
INTERNAL ONLY. More... | |
#define | CPP_ret CPP_broken_friend_ret |
#define | CPP_FUN_IMPL_1_(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_REQUIRES(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_SELECT_CONST_(MAYBE_CONST, ...) |
INTERNAL ONLY. More... | |
#define | CPP_PP_PROBE_CONST_PROBE_const CPP_PP_PROBE(~) |
INTERNAL ONLY. | |
#define | CPP_FUN_IMPL_SELECT_CONST_1(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_SELECT_CONST_NOEXCEPT_(MAYBE_NOEXCEPT, ...) |
INTERNAL ONLY. More... | |
#define | CPP_PP_PROBE_NOEXCEPT_PROBE_noexcept CPP_PP_PROBE(~) |
INTERNAL ONLY. | |
#define | CPP_FUN_IMPL_SELECT_CONST_NOEXCEPT_0(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_SELECT_CONST_NOEXCEPT_1(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_EAT_NOEXCEPT_noexcept(...) |
INTERNAL ONLY. | |
#define | CPP_FUN_IMPL_SHOW_NOEXCEPT_noexcept(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_SELECT_CONST_0(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_SELECT_NONCONST_NOEXCEPT_(MAYBE_NOEXCEPT, ...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_SELECT_NONCONST_NOEXCEPT_0(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_SELECT_NONCONST_NOEXCEPT_1(...) |
INTERNAL ONLY. More... | |
#define | CPP_FUN_IMPL_EAT_CONST_const |
INTERNAL ONLY. | |
#define | CPP_FUN_IMPL_EAT_REQUIRES_requires |
INTERNAL ONLY. | |
#define | CPP_fun(X) CPP_PP_IGNORE_CXX2A_COMPAT_BEGIN X CPP_FUN_IMPL_1_ |
#define | CPP_auto_fun(X) X CPP_AUTO_FUN_IMPL_ |
#define | CPP_AUTO_FUN_IMPL_(...) (__VA_ARGS__) CPP_AUTO_FUN_RETURNS_ |
INTERNAL ONLY. | |
#define | CPP_AUTO_FUN_RETURNS_(...) |
INTERNAL ONLY. More... | |
#define | CPP_AUTO_FUN_SELECT_RETURNS_(MAYBE_CONST, ...) |
INTERNAL ONLY. More... | |
#define | CPP_PP_PROBE_CONST_MUTABLE_PROBE_const CPP_PP_PROBE_N(~, 1) |
INTERNAL ONLY. | |
#define | CPP_PP_PROBE_CONST_MUTABLE_PROBE_mutable CPP_PP_PROBE_N(~, 2) |
INTERNAL ONLY. | |
#define | CPP_PP_EAT_MUTABLE_mutable |
INTERNAL ONLY. | |
#define | CPP_AUTO_FUN_RETURNS_CONST_2(...) CPP_PP_CAT(CPP_PP_EAT_MUTABLE_, __VA_ARGS__) CPP_AUTO_FUN_RETURNS_CONST_0 |
INTERNAL ONLY. | |
#define | CPP_AUTO_FUN_RETURNS_CONST_1(...) __VA_ARGS__ CPP_AUTO_FUN_RETURNS_CONST_0 |
INTERNAL ONLY. | |
#define | CPP_AUTO_FUN_RETURNS_CONST_0(...) |
INTERNAL ONLY. More... | |
#define | CPP_AUTO_FUN_RETURNS_return |
INTERNAL ONLY. | |
#define | CPP_AUTO_FUN_DECLTYPE_NOEXCEPT_(...) |
INTERNAL ONLY. More... | |
Typedefs | |
template<bool B> | |
using | concepts::bool_ = std::integral_constant< bool, B > |
template<typename T , typename EnableIf > | |
using | concepts::return_t = meta::invoke< return_t_< EnableIf >, T > |
Functions | |
template<typename From , typename To > | |
concepts::CPP_requires (explicitly_convertible_to_, requires(From(*from)())(static_cast< To >(from()))) | |
\concept explicitly_convertible_to_ More... | |
concepts::CPP_template (typename T, typename U)(concept(derived_from_)(T | |
\concept derived_from_ More... | |
concepts::CPP_template (typename T, typename U)(concept(common_reference_with_)(T | |
\concept common_reference_with_ More... | |
concepts::CPP_template (typename T, typename U)(concept(common_with_)(T | |
\concept common_with_ More... | |
template<typename T , typename U > | |
concepts::CPP_requires (assignable_from_, requires(T t, U &&u)(t=(U &&) u, requires_< same_as< T, decltype(t=(U &&) u)>>)) | |
\concept assignable_from_ More... | |
template<typename T > | |
concepts::CPP_requires (swappable_, requires(T &t, T &u)(concepts::swap(t, u))) | |
\concept swappable_ More... | |
template<typename T , typename U > | |
concepts::CPP_requires (swappable_with_, requires(T &&t, U &&u)(concepts::swap((T &&) t,(T &&) t), concepts::swap((U &&) u,(U &&) u), concepts::swap((U &&) u,(T &&) t), concepts::swap((T &&) t,(U &&) u))) | |
\concept swappable_with_ More... | |
template<typename T > | |
concepts::detail::CPP_requires (boolean_testable_frag_, requires(T &&t)(!(T &&) t, concepts::requires_< boolean_testable_impl_< decltype(!(T &&) t)>>)) | |
\concept boolean_testable_frag_ More... | |
template<typename T , typename U > | |
CPP_DIAGNOSTIC_PUSH CPP_DIAGNOSTIC_IGNORE_FLOAT_EQUAL | concepts::detail::CPP_requires (weakly_equality_comparable_with_frag_, requires(detail::as_cref_t< T > t, detail::as_cref_t< U > u)(concepts::requires_< boolean_testable_< decltype(t==u)>>, concepts::requires_< boolean_testable_< decltype(t !=u)>>, concepts::requires_< boolean_testable_< decltype(u==t)>>, concepts::requires_< boolean_testable_< decltype(u !=t)>>)) |
\concept weakly_equality_comparable_with_frag_ More... | |
template<typename T , typename U > | |
concepts::detail::CPP_requires (partially_ordered_with_frag_, requires(detail::as_cref_t< T > &t, detail::as_cref_t< U > &u)(concepts::requires_< boolean_testable_< decltype(t< u)>>, concepts::requires_< boolean_testable_< decltype(t > u)>>, concepts::requires_< boolean_testable_< decltype(t<=u)>>, concepts::requires_< boolean_testable_< decltype(t >=u)>>, concepts::requires_< boolean_testable_< decltype(u< t)>>, concepts::requires_< boolean_testable_< decltype(u > t)>>, concepts::requires_< boolean_testable_< decltype(u<=t)>>, concepts::requires_< boolean_testable_< decltype(u >=t)>>)) | |
\concept partially_ordered_with_frag_ More... | |
concepts::CPP_template (typename T, typename U)(concept(equality_comparable_with_)(T | |
\concept equality_comparable_with_ More... | |
concepts::CPP_template (typename T, typename U)(concept(totally_ordered_with_)(T | |
\concept totally_ordered_with_ More... | |
concepts::CPP_template (typename T)(concept(copy_constructible_)(T) | |
\concept copy_constructible_ More... | |
concepts::CPP_template (typename T)(concept(move_assignable_)(T) | |
\concept move_assignable_ More... | |
concepts::CPP_template (typename T)(concept(copy_assignable_)(T) | |
\concept copy_assignable_ More... | |
Variables | |
template<bool... Bs> | |
constexpr CPP_INLINE_VAR bool | concepts::and_v |
template<bool... Bs> | |
constexpr CPP_INLINE_VAR bool | concepts::or_v |
template<bool B> | |
constexpr CPP_INLINE_VAR std::enable_if_t< B, int > | concepts::requires_ = 0 |
template<bool B> | |
CPP_concept | concepts::is_true = B |
\concept is_true More... | |
template<typename... Args> | |
CPP_concept | concepts::type = true |
\concept type More... | |
template<class T , template< typename... > class Trait, typename... Args> | |
CPP_concept | concepts::satisfies |
\concept satisfies More... | |
template<typename A , typename B > | |
CPP_concept | concepts::same_as |
\concept same_as More... | |
template<typename From , typename To > | |
CPP_concept | concepts::implicitly_convertible_to |
\concept implicitly_convertible_to More... | |
template<typename From , typename To > | |
CPP_concept | concepts::explicitly_convertible_to |
\concept explicitly_convertible_to More... | |
template<typename From , typename To > | |
CPP_concept | concepts::convertible_to |
\concept convertible_to More... | |
concepts::U | |
convertible_to< T const volatile *, U const volatile * > | concepts::convertible_to< T const volatile *, U const volatile * > |
template<typename T , typename U > | |
CPP_concept | concepts::derived_from |
\concept derived_from More... | |
concepts::U | |
same_as< common_reference_t< T, U >, common_reference_t< U, T > > CPP_and convertible_to< T, common_reference_t< T, U > > CPP_and | concepts::convertible_to< U, common_reference_t< T, U > > |
template<typename T , typename U > | |
CPP_concept | concepts::common_reference_with |
\concept common_reference_with More... | |
concepts::U | |
template<typename T , typename U > | |
CPP_concept | concepts::common_with |
\concept common_with More... | |
template<typename T > | |
CPP_concept | concepts::integral |
\concept integral More... | |
template<typename T > | |
CPP_concept | concepts::signed_integral |
\concept signed_integral More... | |
template<typename T > | |
CPP_concept | concepts::unsigned_integral |
\concept unsigned_integral More... | |
template<typename T , typename U > | |
CPP_concept | concepts::assignable_from |
\concept assignable_from More... | |
template<typename T > | |
CPP_concept | concepts::swappable |
\concept swappable More... | |
template<typename T , typename U > | |
CPP_concept | concepts::swappable_with |
\concept swappable_with More... | |
template<typename T > | |
CPP_concept | concepts::detail::boolean_testable_impl_ = convertible_to<T, bool> |
\concept boolean_testable_impl_ More... | |
template<typename T > | |
CPP_concept | concepts::detail::boolean_testable_ |
\concept boolean_testable_ More... | |
template<typename T , typename U > | |
CPP_concept | concepts::detail::weakly_equality_comparable_with_ |
\concept weakly_equality_comparable_with_ More... | |
template<typename T , typename U > | |
CPP_concept | concepts::detail::partially_ordered_with_ |
\concept partially_ordered_with_ More... | |
template<typename T > | |
CPP_concept | concepts::equality_comparable |
\concept equality_comparable More... | |
concepts::U | |
template<typename T , typename U > | |
CPP_concept | concepts::equality_comparable_with |
\concept equality_comparable_with More... | |
template<typename T > | |
CPP_concept | concepts::totally_ordered |
\concept totally_ordered More... | |
concepts::U | |
template<typename T , typename U > | |
CPP_concept | concepts::totally_ordered_with |
\concept totally_ordered_with More... | |
template<typename T > | |
CPP_concept | concepts::destructible |
\concept destructible More... | |
template<typename T , typename... Args> | |
CPP_concept | concepts::constructible_from |
\concept constructible_from More... | |
template<typename T > | |
CPP_concept | concepts::default_constructible |
\concept default_constructible More... | |
template<typename T > | |
CPP_concept | concepts::move_constructible |
\concept move_constructible More... | |
constructible_from< T, T & > &&constructible_from< T, T const & > &&constructible_from< T, T const > &&convertible_to< T &, T > &&convertible_to< T const &, T > && | concepts::convertible_to< T const, T > |
template<typename T > | |
CPP_concept | concepts::copy_constructible |
\concept copy_constructible More... | |
assignable_from< T &, T > | concepts::assignable_from< T &, T > |
template<typename T > | |
CPP_concept | concepts::movable |
\concept movable More... | |
assignable_from< T &, T const & > | concepts::assignable_from< T &, T const & > |
template<typename T > | |
CPP_concept | concepts::copyable |
\concept copyable More... | |
template<typename T > | |
CPP_concept | concepts::semiregular |
\concept semiregular More... | |
template<typename T > | |
CPP_concept | concepts::regular |
\concept regular More... | |
#define CPP_assert | ( | ... | ) |
#define CPP_AUTO_FUN_DECLTYPE_NOEXCEPT_ | ( | ... | ) |
INTERNAL ONLY.
#define CPP_AUTO_FUN_RETURNS_ | ( | ... | ) |
INTERNAL ONLY.
#define CPP_AUTO_FUN_RETURNS_CONST_0 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_AUTO_FUN_SELECT_RETURNS_ | ( | MAYBE_CONST, | |
... | |||
) |
INTERNAL ONLY.
#define CPP_broken_friend_member |
INTERNAL ONLY.
#define CPP_broken_friend_ret | ( | ... | ) |
#define CPP_BROKEN_FRIEND_RETURN_TYPE_AUX_ | ( | ... | ) |
INTERNAL ONLY.
#define CPP_CONCEPT_NAME_ | ( | DECL | ) |
INTERNAL ONLY.
#define CPP_concept_ref | ( | NAME, | |
... | |||
) |
#define CPP_ctor_sfinae | ( | TYPE | ) |
INTERNAL ONLY.
#define CPP_CTOR_SFINAE_IMPL_1_ | ( | ... | ) |
INTERNAL ONLY.
#define CPP_CTOR_SFINAE_REQUIRES | ( | ... | ) |
INTERNAL ONLY.
#define CPP_CTOR_SFINAE_REQUIRES_0 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_CTOR_SFINAE_REQUIRES_1 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_CTOR_SFINAE_SHOW_NOEXCEPT_noexcept | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_1_ | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_REQUIRES | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_CONST_ | ( | MAYBE_CONST, | |
... | |||
) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_CONST_0 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_CONST_1 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_CONST_NOEXCEPT_ | ( | MAYBE_NOEXCEPT, | |
... | |||
) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_CONST_NOEXCEPT_0 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_CONST_NOEXCEPT_1 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_NONCONST_NOEXCEPT_ | ( | MAYBE_NOEXCEPT, | |
... | |||
) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_NONCONST_NOEXCEPT_0 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SELECT_NONCONST_NOEXCEPT_1 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_FUN_IMPL_SHOW_NOEXCEPT_noexcept | ( | ... | ) |
INTERNAL ONLY.
#define CPP_PP_COUNT | ( | ... | ) |
#define CPP_PP_IS_NOT_EMPTY | ( | ... | ) |
#define CPP_requires | ( | NAME, | |
REQS | |||
) |
#define CPP_REQUIRES_AUX_ | ( | NAME, | |
... | |||
) |
INTERNAL ONLY.
#define CPP_requires_ref | ( | NAME, | |
... | |||
) |
#define CPP_TEMPLATE_DEF_SFINAE_AUX_ | ( | ... | ) |
INTERNAL ONLY.
#define CPP_template_sfinae | ( | ... | ) |
#define CPP_TEMPLATE_SFINAE_AUX_ | ( | ... | ) |
INTERNAL ONLY.
#define CPP_TEMPLATE_SFINAE_AUX_0 | ( | ... | ) |
INTERNAL ONLY.
#define CPP_TEMPLATE_SFINAE_AUX_1 | ( | DECL, | |
... | |||
) |
INTERNAL ONLY.
#define CPP_TEMPLATE_SFINAE_AUX_WHICH_ | ( | FIRST, | |
... | |||
) |
INTERNAL ONLY.
concepts::defs::CPP_requires | ( | assignable_from_ | , |
requires(T t, U &&u)(t=(U &&) u, requires_< same_as< T, decltype(t=(U &&) u)>>) | |||
) |
\concept assignable_from_
The assignable_from_
concept
concepts::detail::CPP_requires | ( | boolean_testable_frag_ | , |
requires(T &&t)(!(T &&) t, concepts::requires_< boolean_testable_impl_< decltype(!(T &&) t)>>) | |||
) |
\concept boolean_testable_frag_
The boolean_testable_frag_
concept
concepts::defs::CPP_requires | ( | explicitly_convertible_to_ | , |
requires(From(*from)())(static_cast< To >(from())) | |||
) |
\concept explicitly_convertible_to_
The explicitly_convertible_to_
concept
concepts::detail::CPP_requires | ( | partially_ordered_with_frag_ | , |
requires(detail::as_cref_t< T > &t, detail::as_cref_t< U > &u)(concepts::requires_< boolean_testable_< decltype(t< u)>>, concepts::requires_< boolean_testable_< decltype(t > u)>>, concepts::requires_< boolean_testable_< decltype(t<=u)>>, concepts::requires_< boolean_testable_< decltype(t >=u)>>, concepts::requires_< boolean_testable_< decltype(u< t)>>, concepts::requires_< boolean_testable_< decltype(u > t)>>, concepts::requires_< boolean_testable_< decltype(u<=t)>>, concepts::requires_< boolean_testable_< decltype(u >=t)>>) | |||
) |
\concept partially_ordered_with_frag_
The partially_ordered_with_frag_
concept
concepts::defs::CPP_requires | ( | swappable_ | , |
requires(T &t, T &u)(concepts::swap(t, u)) | |||
) |
\concept swappable_
The swappable_
concept
concepts::defs::CPP_requires | ( | swappable_with_ | , |
requires(T &&t, U &&u)(concepts::swap((T &&) t,(T &&) t), concepts::swap((U &&) u,(U &&) u), concepts::swap((U &&) u,(T &&) t), concepts::swap((T &&) t,(U &&) u)) | |||
) |
\concept swappable_with_
The swappable_with_
concept
CPP_DIAGNOSTIC_PUSH CPP_DIAGNOSTIC_IGNORE_FLOAT_EQUAL concepts::detail::CPP_requires | ( | weakly_equality_comparable_with_frag_ | , |
requires(detail::as_cref_t< T > t, detail::as_cref_t< U > u)(concepts::requires_< boolean_testable_< decltype(t==u)>>, concepts::requires_< boolean_testable_< decltype(t !=u)>>, concepts::requires_< boolean_testable_< decltype(u==t)>>, concepts::requires_< boolean_testable_< decltype(u !=t)>>) | |||
) |
\concept weakly_equality_comparable_with_frag_
The weakly_equality_comparable_with_frag_
concept
concepts::defs::CPP_template | ( | typename T | ) |
\concept copy_assignable_
The copy_assignable_
concept
concepts::defs::CPP_template | ( | typename T | ) |
\concept copy_constructible_
The copy_constructible_
concept
concepts::defs::CPP_template | ( | typename T | ) |
\concept move_assignable_
The move_assignable_
concept
concepts::defs::CPP_template | ( | typename T | , |
typename U | |||
) |
\concept common_reference_with_
The common_reference_with_
concept
concepts::defs::CPP_template | ( | typename T | , |
typename U | |||
) |
\concept common_with_
The common_with_
concept
concepts::defs::CPP_template | ( | typename T | , |
typename U | |||
) |
\concept derived_from_
The derived_from_
concept
concepts::defs::CPP_template | ( | typename T | , |
typename U | |||
) |
\concept equality_comparable_with_
The equality_comparable_with_
concept
concepts::defs::CPP_template | ( | typename T | , |
typename U | |||
) |
\concept totally_ordered_with_
The totally_ordered_with_
concept
|
constexpr |
CPP_concept concepts::defs::assignable_from |
\concept assignable_from
The assignable_from
concept
CPP_concept concepts::detail::boolean_testable_ |
\concept boolean_testable_
The boolean_testable_
concept
CPP_concept concepts::detail::boolean_testable_impl_ = convertible_to<T, bool> |
\concept boolean_testable_impl_
The boolean_testable_impl_
concept
CPP_concept concepts::defs::common_reference_with |
\concept common_reference_with
The common_reference_with
concept
CPP_concept concepts::defs::common_with |
\concept common_with
The common_with
concept
CPP_concept concepts::defs::constructible_from |
\concept constructible_from
The constructible_from
concept
CPP_concept concepts::defs::convertible_to |
\concept convertible_to
The convertible_to
concept
CPP_concept concepts::defs::copy_constructible |
\concept copy_constructible
The copy_constructible
concept
CPP_concept concepts::defs::copyable |
\concept copyable
The copyable
concept
CPP_concept concepts::defs::default_constructible |
\concept default_constructible
The default_constructible
concept
CPP_concept concepts::defs::derived_from |
\concept derived_from
The derived_from
concept
CPP_concept concepts::defs::destructible |
\concept destructible
The destructible
concept
CPP_concept concepts::defs::equality_comparable |
\concept equality_comparable
The equality_comparable
concept
CPP_concept concepts::defs::equality_comparable_with |
\concept equality_comparable_with
The equality_comparable_with
concept
CPP_concept concepts::defs::explicitly_convertible_to |
\concept explicitly_convertible_to
The explicitly_convertible_to
concept
CPP_concept concepts::defs::implicitly_convertible_to |
\concept implicitly_convertible_to
The implicitly_convertible_to
concept
CPP_concept concepts::defs::integral |
\concept integral
The integral
concept
CPP_concept concepts::defs::is_true = B |
\concept is_true
The is_true
concept
CPP_concept concepts::defs::movable |
\concept movable
The movable
concept
CPP_concept concepts::defs::move_constructible |
\concept move_constructible
The move_constructible
concept
|
constexpr |
CPP_concept concepts::detail::partially_ordered_with_ |
\concept partially_ordered_with_
The partially_ordered_with_
concept
CPP_concept concepts::defs::regular |
\concept regular
The regular
concept
CPP_concept concepts::defs::same_as |
\concept same_as
The same_as
concept
CPP_concept concepts::defs::satisfies |
\concept satisfies
The satisfies
concept
CPP_concept concepts::defs::semiregular |
\concept semiregular
The semiregular
concept
CPP_concept concepts::defs::signed_integral |
\concept signed_integral
The signed_integral
concept
CPP_concept concepts::defs::swappable |
\concept swappable
The swappable
concept
CPP_concept concepts::defs::swappable_with |
\concept swappable_with
The swappable_with
concept
CPP_concept concepts::defs::totally_ordered |
\concept totally_ordered
The totally_ordered
concept
CPP_concept concepts::defs::totally_ordered_with |
\concept totally_ordered_with
The totally_ordered_with
concept
CPP_concept concepts::defs::type = true |
\concept type
The type
concept
CPP_concept concepts::defs::unsigned_integral |
\concept unsigned_integral
The unsigned_integral
concept
CPP_concept concepts::detail::weakly_equality_comparable_with_ |
\concept weakly_equality_comparable_with_
The weakly_equality_comparable_with_
concept