Iros
 
Loading...
Searching...
No Matches
di::util::StrongInt< Tag > Class Template Reference

#include <di/util/strong_int.h>

Inheritance diagram for di::util::StrongInt< Tag >:
[legend]

Public Types

using Type = Tag::Type
 
using SSizeType = detail::SSizeType<Tag>
 

Public Member Functions

 StrongInt ()=default
 
constexpr StrongInt (Type value)
 
constexpr auto raw_value () const -> Type
 
constexpr auto operator+= (Type x) -> StrongInt &
 
constexpr auto operator+= (SSizeType x) -> StrongInt &requires(!concepts::SameAs< SSizeType, Type >)
 
constexpr auto operator-= (Type x) -> StrongInt &
 
constexpr auto operator-= (SSizeType x) -> StrongInt &requires(!concepts::SameAs< SSizeType, Type >)
 
constexpr auto operator++ () -> StrongInt &
 
constexpr auto operator++ (int) -> StrongInt
 
constexpr auto operator-- () -> StrongInt &
 
constexpr auto operator-- (int) -> StrongInt
 

Friends

constexpr friend auto operator+ (StrongInt a, Type b) -> StrongInt
 
constexpr friend auto operator+ (StrongInt a, SSizeType b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
 
constexpr friend auto operator+ (Type a, StrongInt b) -> StrongInt
 
constexpr friend auto operator+ (SSizeType a, StrongInt b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
 
constexpr friend auto operator- (StrongInt a, Type b) -> StrongInt
 
constexpr friend auto operator- (StrongInt a, SSizeType b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
 
constexpr friend auto operator- (Type a, StrongInt b) -> StrongInt
 
constexpr friend auto operator- (SSizeType a, StrongInt b) -> StrongInt requires(!concepts::SameAs< SSizeType, Type >)
 
constexpr friend auto operator- (StrongInt a, StrongInt b) -> SSizeType
 
constexpr friend auto operator== (StrongInt a, StrongInt b) -> bool
 
constexpr friend auto operator<=> (StrongInt a, StrongInt b) -> di::strong_ordering
 
template<concepts::Encoding Enc>
constexpr friend auto tag_invoke (types::Tag< format::formatter_in_place >, InPlaceType< StrongInt >, FormatParseContext< Enc > &parse_context, bool debug)
 

Member Typedef Documentation

◆ SSizeType

template<detail::Tag Tag>
using di::util::StrongInt< Tag >::SSizeType = detail::SSizeType<Tag>

◆ Type

template<detail::Tag Tag>
using di::util::StrongInt< Tag >::Type = Tag::Type

Constructor & Destructor Documentation

◆ StrongInt() [1/2]

template<detail::Tag Tag>
di::util::StrongInt< Tag >::StrongInt ( )
default

◆ StrongInt() [2/2]

template<detail::Tag Tag>
di::util::StrongInt< Tag >::StrongInt ( Type value)
inlineexplicitconstexpr

Member Function Documentation

◆ operator++() [1/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator++ ( ) -> StrongInt&
inlineconstexpr

◆ operator++() [2/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator++ ( int ) -> StrongInt
inlineconstexpr

◆ operator+=() [1/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator+= ( SSizeType x) -> StrongInt& requires(!concepts::SameAs<SSizeType, Type>)
inlineconstexpr

◆ operator+=() [2/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator+= ( Type x) -> StrongInt&
inlineconstexpr

◆ operator--() [1/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator-- ( ) -> StrongInt&
inlineconstexpr

◆ operator--() [2/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator-- ( int ) -> StrongInt
inlineconstexpr

◆ operator-=() [1/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator-= ( SSizeType x) -> StrongInt& requires(!concepts::SameAs<SSizeType, Type>)
inlineconstexpr

◆ operator-=() [2/2]

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::operator-= ( Type x) -> StrongInt&
inlineconstexpr

◆ raw_value()

template<detail::Tag Tag>
auto di::util::StrongInt< Tag >::raw_value ( ) const -> Type
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator+ [1/4]

template<detail::Tag Tag>
friend auto operator+ ( SSizeType a,
StrongInt< Tag > b ) -> StrongInt requires(!concepts::SameAs<SSizeType, Type>)
friend

◆ operator+ [2/4]

template<detail::Tag Tag>
friend auto operator+ ( StrongInt< Tag > a,
SSizeType b ) -> StrongInt requires(!concepts::SameAs<SSizeType, Type>)
friend

◆ operator+ [3/4]

template<detail::Tag Tag>
friend auto operator+ ( StrongInt< Tag > a,
Type b ) -> StrongInt
friend

◆ operator+ [4/4]

template<detail::Tag Tag>
friend auto operator+ ( Type a,
StrongInt< Tag > b ) -> StrongInt
friend

◆ operator- [1/5]

template<detail::Tag Tag>
friend auto operator- ( SSizeType a,
StrongInt< Tag > b ) -> StrongInt requires(!concepts::SameAs<SSizeType, Type>)
friend

◆ operator- [2/5]

template<detail::Tag Tag>
friend auto operator- ( StrongInt< Tag > a,
SSizeType b ) -> StrongInt requires(!concepts::SameAs<SSizeType, Type>)
friend

◆ operator- [3/5]

template<detail::Tag Tag>
friend auto operator- ( StrongInt< Tag > a,
StrongInt< Tag > b ) -> SSizeType
friend

◆ operator- [4/5]

template<detail::Tag Tag>
friend auto operator- ( StrongInt< Tag > a,
Type b ) -> StrongInt
friend

◆ operator- [5/5]

template<detail::Tag Tag>
friend auto operator- ( Type a,
StrongInt< Tag > b ) -> StrongInt
friend

◆ operator<=>

template<detail::Tag Tag>
friend auto operator<=> ( StrongInt< Tag > a,
StrongInt< Tag > b ) -> di::strong_ordering
friend

◆ operator==

template<detail::Tag Tag>
friend auto operator== ( StrongInt< Tag > a,
StrongInt< Tag > b ) -> bool
friend

◆ tag_invoke

template<detail::Tag Tag>
template<concepts::Encoding Enc>
friend auto tag_invoke ( types::Tag< format::formatter_in_place > ,
InPlaceType< StrongInt< Tag > > ,
FormatParseContext< Enc > & parse_context,
bool debug )
friend

The documentation for this class was generated from the following file: