|
OpenTTD Source
14.0-beta1
|
Templated helper to make a type-safe 'typedef' representing a single POD value. More...
#include <strong_typedef_type.hpp>
Public Types | |
| using | BaseType = TBaseType |
Public Member Functions | |
| constexpr | Typedef (const Typedef &)=default |
| constexpr | Typedef (Typedef &&)=default |
| constexpr | Typedef (const TBaseType &value) |
| constexpr Typedef & | operator= (const Typedef &rhs) |
| constexpr Typedef & | operator= (Typedef &&rhs) |
| constexpr Typedef & | operator= (const TBaseType &rhs) |
| constexpr TBaseType | base () const |
Data Fields | |
| TBaseType | value {} |
Friends | |
| struct | Compare |
| struct | Integer |
| template<typename TCompatibleType > | |
| struct | Compatible |
Templated helper to make a type-safe 'typedef' representing a single POD value.
A normal 'typedef' is not distinct from its base type and will be treated as identical in many contexts. This class provides a distinct type that can still be assign from and compared to values of its base type.
Example usage:
using MyType = StrongType::Typedef<int, struct MyTypeTag, StrongType::Explicit, StrongType::Compare, StrongType::Integer>;
| TBaseType | Type of the derived class (i.e. the concrete usage of this class). |
| TTag | An unique struct to keep types of the same TBaseType distinct. |
| TProperties | A list of mixins to add to the class. |
Definition at line 150 of file strong_typedef_type.hpp.