13 struct MixinHelper : meta::TypeConstant<NoopMixin> {};
16 requires(
requires {
typename T::Mixin; })
17 struct MixinHelper<T> : meta::TypeConstant<typename T::Mixin> {};
23 concept Tag =
requires {
typename T::Type; };
26 struct SSizeTypeHelper : meta::TypeConstant<meta::MakeSigned<meta::Type<T>>> {};
29 requires(
requires {
typename T::SSizeType; })
30 struct SSizeTypeHelper<T> : meta::TypeConstant<typename T::SSizeType> {};
36 constexpr inline bool format_as_pointer =
false;
39 requires(T::format_as_pointer)
40 constexpr inline bool format_as_pointer<T> =
true;
43template<detail::Tag Tag>
130 return a.raw_value() <=> b.raw_value();
133 template<concepts::Encoding Enc>
140 auto* pointer =
reinterpret_cast<void*
>(self.raw_value());
141 return formatter(context, pointer);
143 return formatter(context, self.raw_value());
Definition format_parse_context.h:14
Definition strong_int.h:44
constexpr auto operator++() -> StrongInt &
Definition strong_int.h:79
constexpr auto operator--() -> StrongInt &
Definition strong_int.h:89
constexpr friend auto operator+(StrongInt a, SSizeType b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
Definition strong_int.h:101
constexpr friend auto operator==(StrongInt a, StrongInt b) -> bool
Definition strong_int.h:128
constexpr auto operator-=(Type x) -> StrongInt &
Definition strong_int.h:68
constexpr friend auto operator-(StrongInt a, Type b) -> StrongInt
Definition strong_int.h:113
Tag::Type Type
Definition strong_int.h:48
constexpr friend auto operator-(StrongInt a, SSizeType b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
Definition strong_int.h:114
constexpr auto operator+=(Type x) -> StrongInt &
Definition strong_int.h:57
constexpr friend auto tag_invoke(types::Tag< format::formatter_in_place >, InPlaceType< StrongInt >, FormatParseContext< Enc > &parse_context, bool debug)
Definition strong_int.h:134
detail::SSizeType< Tag > SSizeType
Definition strong_int.h:49
constexpr auto raw_value() const -> Type
Definition strong_int.h:55
void IsAtom
Definition strong_int.h:46
constexpr auto operator-=(SSizeType x) -> StrongInt &requires(!concepts::SameAs< SSizeType, Type >)
Definition strong_int.h:72
constexpr auto operator+=(SSizeType x) -> StrongInt &requires(!concepts::SameAs< SSizeType, Type >)
Definition strong_int.h:61
constexpr auto operator--(int) -> StrongInt
Definition strong_int.h:93
constexpr StrongInt(Type value)
Definition strong_int.h:53
constexpr friend auto operator<=>(StrongInt a, StrongInt b) -> di::strong_ordering
Definition strong_int.h:129
constexpr friend auto operator+(SSizeType a, StrongInt b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
Definition strong_int.h:107
constexpr auto operator++(int) -> StrongInt
Definition strong_int.h:83
constexpr friend auto operator+(Type a, StrongInt b) -> StrongInt
Definition strong_int.h:106
constexpr friend auto operator-(Type a, StrongInt b) -> StrongInt
Definition strong_int.h:119
constexpr friend auto operator-(StrongInt a, StrongInt b) -> SSizeType
Definition strong_int.h:126
constexpr friend auto operator+(StrongInt a, Type b) -> StrongInt
Definition strong_int.h:100
constexpr friend auto operator-(SSizeType a, StrongInt b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
Definition strong_int.h:120
Definition operations.h:34
Definition format_context.h:9
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
Definition any_storable.h:9
constexpr auto copy
Definition copy.h:30
Definition in_place_type.h:5