CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::TMetaConstructor< C, Args > Class Template Reference

#include <CeresEngine/Reflection/Class.define.hpp>

Inheritance diagram for CeresEngine::TMetaConstructor< C, Args >:
CeresEngine::ClassConstructor CeresEngine::ClassMember CeresEngine::MetaItem

Public Member Functions

 TMetaConstructor (Class &owner)
 
Span< const TypeIDgetParameterTypeIDs () const override
 
String signature (StringView name) const
 
Box invoke (const MetaValues &arguments) const override
 
- Public Member Functions inherited from CeresEngine::ClassConstructor
 ClassConstructor (Class &owner, StringView name)
 
MetaCategory getCategory () const override
 Gets the category of the item.
 
Span< const TypegetParameterTypes () const
 
template<typename... Args>
auto invoke (Args &&... args) const
 
- Public Member Functions inherited from CeresEngine::MetaItem
virtual ~MetaItem () noexcept=default
 

Private Types

template<std::size_t I>
using argument_get_t = MPL::Nth< I, MPL::TypeList< Args... > >
 
using argument_indexes_t = mpl::index_sequence_for_t< Args... >
 

Static Private Member Functions

static constexpr const charsignature (StringView, std::integral_constant< int, 0 >)
 
static String signature (StringView name, std::integral_constant< int, 1 >)
 
template<int N>
static String signature (StringView name, std::integral_constant< int, N >)
 
template<std::size_t... I>
static Box invokeInternal (const MetaValues &args, mpl::index_sequence< I... >)
 

Additional Inherited Members

- Public Attributes inherited from CeresEngine::ClassConstructor
String name
 
ReflectionAttributeContainer attributes
 
- Static Public Attributes inherited from CeresEngine::ClassConstructor
static constexpr MetaCategory kCategory = MetaCategory::Constructor
 

Member Typedef Documentation

◆ argument_get_t

template<typename C , typename... Args>
template<std::size_t I>
using CeresEngine::TMetaConstructor< C, Args >::argument_get_t = MPL::Nth<I, MPL::TypeList<Args...> >
private

◆ argument_indexes_t

template<typename C , typename... Args>
using CeresEngine::TMetaConstructor< C, Args >::argument_indexes_t = mpl::index_sequence_for_t<Args...>
private

Constructor & Destructor Documentation

◆ TMetaConstructor()

template<typename C , typename... Args>
CeresEngine::TMetaConstructor< C, Args >::TMetaConstructor ( Class owner)
inlineexplicit

Member Function Documentation

◆ getParameterTypeIDs()

template<typename C , typename... Args>
Span< const TypeID > CeresEngine::TMetaConstructor< C, Args >::getParameterTypeIDs ( ) const
inlineoverridevirtual

◆ invoke()

template<typename C , typename... Args>
Box CeresEngine::TMetaConstructor< C, Args >::invoke ( const MetaValues arguments) const
inlineoverridevirtual

◆ invokeInternal()

template<typename C , typename... Args>
template<std::size_t... I>
static Box CeresEngine::TMetaConstructor< C, Args >::invokeInternal ( const MetaValues args,
mpl::index_sequence< I... >   
)
inlinestaticprivate

◆ signature() [1/4]

template<typename C , typename... Args>
String CeresEngine::TMetaConstructor< C, Args >::signature ( StringView  name) const
inline

◆ signature() [2/4]

template<typename C , typename... Args>
static String CeresEngine::TMetaConstructor< C, Args >::signature ( StringView  name,
std::integral_constant< int, 1 >   
)
inlinestaticprivate

◆ signature() [3/4]

template<typename C , typename... Args>
template<int N>
static String CeresEngine::TMetaConstructor< C, Args >::signature ( StringView  name,
std::integral_constant< int, N  
)
inlinestaticprivate

◆ signature() [4/4]

template<typename C , typename... Args>
static constexpr const char * CeresEngine::TMetaConstructor< C, Args >::signature ( StringView  ,
std::integral_constant< int, 0 >   
)
inlinestaticconstexprprivate

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