strong_typedef.h file
Contains the definition of muu::
Namespaces
- namespace muu
- The root namespace for all muu functions and types.
- namespace muu::strong_typedef_traits
- CRTP-based 'mixin' traits for strong typedefs.
Classes
-
template <typename ValueType, typename Tag, template<typename> typename... Traits>struct muu::strong_typedef
- A utility class for creating 'strong typedefs'.
-
template <typename ValueType, typename Tag, template<typename> typename... Traits>struct std::tuple_size<muu::strong_typedef<ValueType, Tag, Traits...>>
- Specialization of std::tuple_size for muu::
strong_typedef. -
template <size_struct std::tuple_element<Index, muu::strong_typedef<ValueType, Tag, Traits...>>
t Index, typename ValueType, typename Tag, template<typename> typename... Traits> - Specialization of std::tuple_element for muu::
strong_typedef. -
template <typename ValueType, typename Tag, template<typename> typename... Traits>struct std::hash<muu::strong_typedef<ValueType, Tag, Traits...>>
- Specialization of std::
hash for muu:: strong_typedef.
Typedefs
-
using addable =
/* ... */
- Imbues a muu::
strong_typedef with addition operators ( x + x
,+x
) -
using boolean =
/* ... */
- Imbues a muu::
strong_typedef with explicit boolean conversion and unary logical not operator. -
using callable =
/* ... */
- Imbues a muu::
strong_typedef with function-call operator overloads ( x()
). -
using comparable =
/* ... */
- Imbues a muu::
strong_typedef with comparison operators ( ==
,!=
,<
,<=
,>
,>=
). -
using decrementable =
/* ... */
- Imbues a muu::
strong_typedef with pre- and post-decrement operators ( --
). -
using incrementable =
/* ... */
- Imbues a muu::
strong_typedef with pre- and post-increment operators ( ++
). -
using pointer_arithmetic =
/* ... */
- Imbues a muu::
strong_typedef with pointer arithmetic operators. -
using subtractable =
/* ... */
- Imbues a muu::
strong_typedef with subtraction operators ( x - x
,-x
)