#include <userver/utils/strong_typedef.hpp>
Strong typedef for a type T.
Typical usage:
Or:
Has all the:
If used with container-like type also has common STL functions:
Operators: You can customize the operators that are available by passing the third argument of type StrongTypedefOps. See its docs for more info.
Definition at line 164 of file strong_typedef.hpp.
Inheritance diagram for utils::StrongTypedef< Tag, T, Ops >:Public Types | |
| using | UnderlyingType = T |
| using | TagType = Tag |
Public Member Functions | |
| StrongTypedef (const StrongTypedef &)=default | |
| StrongTypedef (StrongTypedef &&) noexcept=default | |
| StrongTypedef & | operator= (const StrongTypedef &)=default |
| StrongTypedef & | operator= (StrongTypedef &&) noexcept=default |
| constexpr | StrongTypedef (impl::strong_typedef::InitializerList< T > lst) |
| template<typename... Args> requires std::is_constructible_v<T, Args...> | |
| constexpr | StrongTypedef (Args &&... args) noexcept(noexcept(T(std::forward< Args >(args)...))) |
| constexpr | operator const T & () const &noexcept |
| constexpr | operator T () &&noexcept |
| constexpr | operator T& () &noexcept |
| constexpr const T & | GetUnderlying () const &noexcept |
| constexpr T | GetUnderlying () &&noexcept |
| constexpr T & | GetUnderlying () &noexcept |
| auto | begin () |
| auto | end () |
| auto | begin () const |
| auto | end () const |
| auto | cbegin () const |
| auto | cend () const |
| auto | size () const |
| auto | empty () const |
| auto | clear () |
| template<class Arg> | |
| decltype(auto) | operator[] (Arg &&i) |
| template<class Arg> | |
| decltype(auto) | operator[] (Arg &&i) const |
Static Public Attributes | |
| static constexpr StrongTypedefOps | kOps = Ops |
| using utils::StrongTypedef< Tag, T, Ops >::TagType = Tag |
Definition at line 173 of file strong_typedef.hpp.
| using utils::StrongTypedef< Tag, T, Ops >::UnderlyingType = T |
Definition at line 172 of file strong_typedef.hpp.
|
inlineconstexpr |
Definition at line 182 of file strong_typedef.hpp.
|
inlineexplicitconstexprnoexcept |
Definition at line 188 of file strong_typedef.hpp.
|
inline |
Definition at line 207 of file strong_typedef.hpp.
|
inline |
Definition at line 219 of file strong_typedef.hpp.
|
inline |
Definition at line 231 of file strong_typedef.hpp.
|
inline |
Definition at line 237 of file strong_typedef.hpp.
|
inline |
Definition at line 251 of file strong_typedef.hpp.
|
inline |
Definition at line 249 of file strong_typedef.hpp.
|
inline |
Definition at line 213 of file strong_typedef.hpp.
|
inline |
Definition at line 225 of file strong_typedef.hpp.
|
inlineconstexprnoexcept |
Definition at line 204 of file strong_typedef.hpp.
|
inlineconstexprnoexcept |
Definition at line 205 of file strong_typedef.hpp.
|
inlineconstexprnoexcept |
Definition at line 203 of file strong_typedef.hpp.
|
inlineexplicitconstexprnoexcept |
Definition at line 199 of file strong_typedef.hpp.
|
inlineexplicitconstexprnoexcept |
Definition at line 200 of file strong_typedef.hpp.
|
inlineexplicitconstexprnoexcept |
Definition at line 201 of file strong_typedef.hpp.
|
inline |
Definition at line 254 of file strong_typedef.hpp.
|
inline |
Definition at line 258 of file strong_typedef.hpp.
|
inline |
Definition at line 243 of file strong_typedef.hpp.
|
staticconstexpr |
Definition at line 174 of file strong_typedef.hpp.