Luwra
Minimal-overhead Lua wrapper for C++
Classes | Public Types | List of all members
luwra::internal::MethodWrapperImpl< MethodPointer, Klass > Struct Template Reference

#include <wrappers.hpp>

Classes

struct  ImplementationNonVoid
 
struct  ImplementationVoid
 

Public Types

using BaseKlass = typename MemberInfo< MethodPointer >::MemberOf
 
using Implementation = typename MakeIndexSequence< ArgumentsOf< MethodPointer >::Length >::template Relay< ArgumentsOf< MethodPointer >::template Relay< ImplementationPicker >::template SeqReceiver >
 
template<typename... Types>
using ImplementationPicker = typename std::conditional< std::is_same< ReturnTypeOf< MethodPointer >, void >::value, ImplementationVoid< Types... >, ImplementationNonVoid< Types... > >::type
 

Member Typedef Documentation

◆ BaseKlass

template<typename MethodPointer , typename Klass = typename MemberInfo<MethodPointer>::MemberOf>
using luwra::internal::MethodWrapperImpl< MethodPointer, Klass >::BaseKlass = typename MemberInfo<MethodPointer>::MemberOf

◆ Implementation

template<typename MethodPointer , typename Klass = typename MemberInfo<MethodPointer>::MemberOf>
using luwra::internal::MethodWrapperImpl< MethodPointer, Klass >::Implementation = typename MakeIndexSequence<ArgumentsOf<MethodPointer>::Length>::template Relay< ArgumentsOf<MethodPointer>::template Relay< ImplementationPicker >::template SeqReceiver >

◆ ImplementationPicker

template<typename MethodPointer , typename Klass = typename MemberInfo<MethodPointer>::MemberOf>
template<typename... Types>
using luwra::internal::MethodWrapperImpl< MethodPointer, Klass >::ImplementationPicker = typename std::conditional< std::is_same<ReturnTypeOf<MethodPointer>, void>::value, ImplementationVoid<Types...>, ImplementationNonVoid<Types...> >::type