![]() |
MCRO
C++23 utilities for Unreal Engine.
|
This namespace provides templating utilities and introspection into template instantiations. More...
Namespaces | |
| namespace | Detail |
Data Structures | |
| struct | TIsTypeList_Struct |
| struct | TIsTypeList_Struct< TTypes< T... > > |
| struct | TTemplate |
| Base struct containing traits of specified template (which only accepts type parameters) More... | |
| struct | TTupleSafeElement_Struct |
| struct | TTupleSafeElement_Struct< I, TTuple< T... > > |
| struct | TTypeAtPack_Struct |
| struct | TTypeAtPack_Struct< I > |
| struct | TTypes |
| This template is used to store pack of types in other templates, or to allow parameter pack inference for functions. This template may be referred to as 'type-list' in other parts of the documentation. More... | |
Concepts | |
| concept | CIsTypeList |
Concept constraining a given type to TTypes | |
| concept | CIsTemplate |
| Check if given type is an instantiation of a given template (which only accepts type parameters) | |
Typedefs | |
| template<size_t I, typename... Rest> | |
| using | TTypeAtPack = typename TTypeAtPack_Struct<I, Rest...>::Type |
| Get a specific item from a parameter pack at given index. It is an unspecified compile error to index an empty parameter pack. | |
| template<size_t I, typename... Rest> | |
| using | TLastTypeAtPack = typename TTypeAtPack_Struct<sizeof...(Rest) - I, Rest...>::Type |
| Get a specific item from the end of a parameter pack at given index (0 == last). It is an unspecified compile error to index an empty parameter pack. | |
| template<size_t I, typename... Rest> | |
| using | TTypeAtPackDecay = std::decay_t<typename TTypeAtPack_Struct<I, Rest...>::Type> |
| Get a specific item from a parameter pack at given index disregarding CV-ref qualifiers. It is an unspecified compile error to index an empty parameter pack. | |
| template<size_t I, typename... Rest> | |
| using | TLastTypeAtPackDecay = std::decay_t<typename TTypeAtPack_Struct<sizeof...(Rest) - I, Rest...>::Type> |
| Get a specific item from the end of a parameter pack at given index (0 == last) disregarding CV-ref qualifiers. It is an unspecified compile error to index an empty parameter pack. | |
| template<CIsTypeList T, size_t I> | |
| using | TTypes_Get = T::template Get<I> |
| template<CIsTypeList T, size_t I> | |
| using | TTypes_GetDecay = T::template GetDecay<I> |
| template<template< typename... > typename Template, typename Instance > | |
| using | TTemplate_Params = typename TTemplate<Template>::template Parameters<Instance>::Type |
| Get template type parameters as a tuple. | |
| template<template< typename... > typename Template, typename Instance > | |
| using | TTemplate_ParamsDecay = typename TTemplate<Template>::template ParametersDecay<Instance>::Type |
| Get decayed template type parameters as a tuple. | |
| template<template< typename... > typename Template, typename Instance , int I> | |
| using | TTemplate_Param = typename TTemplate<Template>::template Param<Instance, I> |
| Get a type parameter at a specified position of a templated instance. | |
| template<template< typename... > typename Template, typename Instance , int I> | |
| using | TTemplate_ParamDecay = typename TTemplate<Template>::template ParamDecay<Instance, I> |
| Get a decayed type parameter at a specified position of a templated instance. | |
Functions | |
| template<CConstType T> | |
| constexpr auto && | AsConst (T &&input) |
Tired of typing const_cast<FMyLongUnwieldyTypeName>(...)? use this instead. | |
| template<CMutableType T> | |
| constexpr auto && | AsMutable (T &&input) |
Tired of typing const_cast<FMyLongUnwieldyTypeName>(...)? use this instead. | |
| template<typename T > | |
| constexpr auto | AsConstPtr (const T *input) |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead. | |
| template<typename T > | |
| constexpr auto | AsConstPtr (T *input) |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead. | |
| template<typename T > | |
| constexpr auto | AsMutablePtr (T *input) |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead. | |
| template<typename T > | |
| constexpr auto | AsMutablePtr (const T *input) |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead. | |
Variables | |
| template<template< typename... > typename Template, typename Instance > | |
| constexpr size_t | TTemplate_ParamCount = TTemplate<Template>::template ParameterCount<Instance> |
| Get the number of template type parameters from a specified templated instance (which only has type parameters) | |
This namespace provides templating utilities and introspection into template instantiations.
| using Mcro::Templates::TLastTypeAtPack = typename TTypeAtPack_Struct<sizeof...(Rest) - I, Rest...>::Type |
Get a specific item from the end of a parameter pack at given index (0 == last). It is an unspecified compile error to index an empty parameter pack.
Definition at line 66 of file Templates.h.
| using Mcro::Templates::TLastTypeAtPackDecay = std::decay_t<typename TTypeAtPack_Struct<sizeof...(Rest) - I, Rest...>::Type> |
Get a specific item from the end of a parameter pack at given index (0 == last) disregarding CV-ref qualifiers. It is an unspecified compile error to index an empty parameter pack.
Definition at line 82 of file Templates.h.
| using Mcro::Templates::TTemplate_Param = typename TTemplate<Template>::template Param<Instance, I> |
Get a type parameter at a specified position of a templated instance.
Definition at line 217 of file Templates.h.
| using Mcro::Templates::TTemplate_ParamDecay = typename TTemplate<Template>::template ParamDecay<Instance, I> |
Get a decayed type parameter at a specified position of a templated instance.
Definition at line 228 of file Templates.h.
| using Mcro::Templates::TTemplate_Params = typename TTemplate<Template>::template Parameters<Instance>::Type |
Get template type parameters as a tuple.
Definition at line 195 of file Templates.h.
| using Mcro::Templates::TTemplate_ParamsDecay = typename TTemplate<Template>::template ParametersDecay<Instance>::Type |
Get decayed template type parameters as a tuple.
Definition at line 206 of file Templates.h.
| using Mcro::Templates::TTypeAtPack = typename TTypeAtPack_Struct<I, Rest...>::Type |
Get a specific item from a parameter pack at given index. It is an unspecified compile error to index an empty parameter pack.
Definition at line 58 of file Templates.h.
| using Mcro::Templates::TTypeAtPackDecay = std::decay_t<typename TTypeAtPack_Struct<I, Rest...>::Type> |
Get a specific item from a parameter pack at given index disregarding CV-ref qualifiers. It is an unspecified compile error to index an empty parameter pack.
Definition at line 74 of file Templates.h.
| using Mcro::Templates::TTypes_Get = T::template Get<I> |
Definition at line 127 of file Templates.h.
| using Mcro::Templates::TTypes_GetDecay = T::template GetDecay<I> |
Definition at line 130 of file Templates.h.
|
constexpr |
Tired of typing const_cast<FMyLongUnwieldyTypeName>(...)? use this instead.
Definition at line 255 of file Templates.h.
|
constexpr |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead.
Definition at line 271 of file Templates.h.
|
constexpr |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead.
Definition at line 275 of file Templates.h.
|
constexpr |
Tired of typing const_cast<FMyLongUnwieldyTypeName>(...)? use this instead.
Definition at line 263 of file Templates.h.
|
constexpr |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead.
Definition at line 283 of file Templates.h.
|
constexpr |
Tired of typing const_cast<FMyLongUnwieldyTypeName*>(...)? use this instead.
Definition at line 279 of file Templates.h.
|
inlineconstexpr |
Get the number of template type parameters from a specified templated instance (which only has type parameters)
Definition at line 251 of file Templates.h.