ParameterPack< T > Struct Template Reference

#include <apibase.h>

Detailed Description

template<typename... T>
struct maxon::ParameterPack< T >

Helper class to work with parameter packs. IndexOf supports finding the index of a type in the argument list, At supports indexing into the list, ContainsAll implements a subset test:

ParameterPack<Int, Float, String, String>::IndexOf<Float>::value == 1
ParameterPack<Int, Float, String, String>::At<2>::type == String
Template Parameters
TThe types of the parameter pack.

Classes

struct  At
 
struct  IndexOf
 

Public Types

using FirstType = void
 
using RestPack = ParameterPack<>
 
template<typename... X>
using ContainsAll = maxon::details::ParameterPackContainsAll< ParameterPack, X... >
 
template<template< typename... > class TEMPLATE, typename... X>
using Apply = TEMPLATE< X..., T... >
 

Static Public Attributes

static const Int COUNT
 

Member Typedef Documentation

◆ FirstType

using FirstType = void

The first type of this parameter pack.

◆ RestPack

◆ ContainsAll

ContainsAll checks if this parameter pack contains all types X. Besides a list of types X can also be a ParameterPack itself.

Template Parameters
XTypes to check. This can either be a list of types, or a single ParameterPack.

◆ Apply

using Apply = TEMPLATE<X..., T...>

Member Data Documentation

◆ COUNT

const Int COUNT
static
Int
maxon::Int Int
Definition: ge_sys_math.h:62
maxon::ParameterPack::ContainsAll
maxon::details::ParameterPackContainsAll< ParameterPack, X... > ContainsAll
Definition: apibase.h:842
Float
maxon::Float Float
Definition: ge_sys_math.h:64
String
Definition: c4d_string.h:38
maxon::Int
Int64 Int
signed 32/64 bit int, size depends on the platform
Definition: apibase.h:184
Bool
maxon::Bool Bool
Definition: ge_sys_math.h:53