MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
Mcro::Templates::TTemplate< Template > Struct Template Reference

Base struct containing traits of specified template (which only accepts type parameters) More...

#include <Templates.h>

Data Structures

struct  Parameters
 
struct  Parameters< Template< Params... > >
 
struct  ParametersDecay
 
struct  ParametersDecay< Template< Params... > >
 

Public Types

template<typename Instance , int I>
using Param = typename TTupleSafeElement_Struct<I, typename Parameters<Instance>::Type>::Type
 
template<typename Instance , int I>
using ParamDecay = typename TTupleSafeElement_Struct<I, typename ParametersDecay<Instance>::Type>::Type
 

Static Public Attributes

template<typename T >
static constexpr bool Match = false
 
template<typename... Params>
static constexpr bool Match< Template< Params... > > = true
 
template<typename T >
static constexpr size_t ParameterCount = 0
 
template<typename... Params>
static constexpr size_t ParameterCount< Template< Params... > > = sizeof...(Params)
 

Detailed Description

template<template< typename... > typename Template>
struct Mcro::Templates::TTemplate< Template >

Base struct containing traits of specified template (which only accepts type parameters)

Warning
Until this proposal https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1985r0.pdf or equivalent is considered seriously, template traits only work with templates which only have type-parameters. Non-type parameters even when a default is specified for them will result in compile error.

Definition at line 141 of file Templates.h.

Member Typedef Documentation

◆ Param

template<template< typename... > typename Template>
template<typename Instance , int I>
using Mcro::Templates::TTemplate< Template >::Param = typename TTupleSafeElement_Struct<I, typename Parameters<Instance>::Type>::Type

Definition at line 180 of file Templates.h.

◆ ParamDecay

template<template< typename... > typename Template>
template<typename Instance , int I>
using Mcro::Templates::TTemplate< Template >::ParamDecay = typename TTupleSafeElement_Struct<I, typename ParametersDecay<Instance>::Type>::Type

Definition at line 183 of file Templates.h.

Field Documentation

◆ Match

template<template< typename... > typename Template>
template<typename T >
bool Mcro::Templates::TTemplate< Template >::Match = false
staticconstexpr

Definition at line 144 of file Templates.h.

◆ Match< Template< Params... > >

template<template< typename... > typename Template>
template<typename... Params>
bool Mcro::Templates::TTemplate< Template >::Match< Template< Params... > > = true
staticconstexpr

Definition at line 147 of file Templates.h.

◆ ParameterCount

template<template< typename... > typename Template>
template<typename T >
size_t Mcro::Templates::TTemplate< Template >::ParameterCount = 0
staticconstexpr

Definition at line 150 of file Templates.h.

◆ ParameterCount< Template< Params... > >

template<template< typename... > typename Template>
template<typename... Params>
size_t Mcro::Templates::TTemplate< Template >::ParameterCount< Template< Params... > > = sizeof...(Params)
staticconstexpr

Definition at line 153 of file Templates.h.


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