Gorgon Game Engine
Gorgon::TMP Namespace Reference

Classes

class  AbstractRTT
 Runtime Type. This class implements both RTTS and RTTI. More...
 
class  AbstractRTT< void >
 Runtime Type. This class implements both RTTS and RTTI. More...
 
class  AbstractRTTC
 Runtime type class, implements RTTH. More...
 
struct  Choose
 This acts like ? operator between two types. More...
 
struct  FunctionTraits< R_(Args_...)>
 Determines traits of a function. More...
 
struct  Generate
 Generates a sequence from 0 to the given value. More...
 
struct  HasParanthesisOperator
 
struct  IntTuple
 
class  IsStreamable
 
struct  MakeIndices
 
struct  MakeIndices_impl
 
struct  MakeIndices_impl< I, IntTuple< Indices... > >
 
struct  MakeIndices_impl< I, IntTuple< Indices... >, T, Types... >
 
struct  Placeholder
 Solution by Peter Dimov-5: http://std.2283326.n4.nabble.com/bind-Possible-to-use-variadic-templates-with-bind-td2557818.html. More...
 
struct  Placeholder< 1 >
 
struct  Placeholder< 2 >
 
struct  Placeholder< 3 >
 
struct  Placeholder< 4 >
 
struct  Placeholder< 5 >
 
struct  Placeholder< 6 >
 
struct  Placeholder< 7 >
 
struct  Placeholder< 8 >
 
struct  Placeholder< 9 >
 
struct  RemoveRValueReference
 
struct  RemoveRValueReference< T_ && >
 
class  RTT
 Runtime Type. This class implements both RTTS and RTTI. More...
 
class  RTTC
 Runtime type class, implements RTTH. More...
 
class  RTTH
 Runtime Type Hierarchy. More...
 
class  RTTI
 This class contains information about a runtime type. More...
 
class  RTTS
 This class contains runtime type services that allows dealing with unknown type. More...
 
struct  Sequence
 A sequence element, can be used to represent a sequence of integer numbers. More...
 

Functions

template<class T_ >
std::enable_if< std::is_copy_constructible< T_ >::value &&!std::is_abstract< T_ >::value, void * >::type clonetype_wnull (const void *const obj)
 
template<class T_ >
std::enable_if<!std::is_copy_constructible< T_ >::value||std::is_abstract< T_ >::value, void * >::type clonetype_wnull (const void *const obj)
 
template<class T_ >
std::enable_if< std::is_copy_assignable< T_ >::value &&!std::is_const< T_ >::value, void >::type copytype_wnull (void *const dest, const void *const obj)
 
template<class T_ >
std::enable_if<!std::is_copy_assignable< T_ >::value||std::is_const< T_ >::value, void >::type copytype_wnull (void *const dest, const void *const obj)
 
template<class T_ , class Ret_ , class... Args>
std::function< Ret_(Args...) > MakeFunctionFromMember (Ret_(T_::*pm)(Args...), T_ *that)
 
template<class T , class Ret_ , class... Args, int... Indices>
std::function< Ret_(Args...) > MakeFunctionFromMember_helper (Ret_(T::*pm)(Args...), T *that, IntTuple< Indices... >)
 
constexpr bool static_strequal_helper (const char *a, const char *b, unsigned len)
 
template<unsigned N1_, unsigned N2_>
constexpr bool StaticStrEqual (const char(&str1)[N1_], const char(&str2)[N2_])
 

Function Documentation

◆ clonetype_wnull() [1/2]

std::enable_if<std::is_copy_constructible<T_>::value && !std::is_abstract<T_>::value, void*>::type Gorgon::TMP::clonetype_wnull ( const void *const  obj)

◆ clonetype_wnull() [2/2]

std::enable_if<!std::is_copy_constructible<T_>::value || std::is_abstract<T_>::value, void*>::type Gorgon::TMP::clonetype_wnull ( const void *const  obj)

◆ copytype_wnull() [1/2]

std::enable_if<std::is_copy_assignable<T_>::value && !std::is_const<T_>::value, void>::type Gorgon::TMP::copytype_wnull ( void *const  dest,
const void *const  obj 
)

◆ copytype_wnull() [2/2]

std::enable_if<!std::is_copy_assignable<T_>::value || std::is_const<T_>::value, void>::type Gorgon::TMP::copytype_wnull ( void *const  dest,
const void *const  obj 
)

◆ MakeFunctionFromMember()

std::function< Ret_(Args...) > Gorgon::TMP::MakeFunctionFromMember ( Ret_(T_::*)(Args...)  pm,
T_ *  that 
)

◆ MakeFunctionFromMember_helper()

std::function< Ret_(Args...) > Gorgon::TMP::MakeFunctionFromMember_helper ( Ret_(T::*)(Args...)  pm,
T *  that,
IntTuple< Indices... >   
)

◆ static_strequal_helper()

constexpr bool Gorgon::TMP::static_strequal_helper ( const char *  a,
const char *  b,
unsigned  len 
)
constexpr

◆ StaticStrEqual()

constexpr bool Gorgon::TMP::StaticStrEqual ( const char(&)  str1[N1_],
const char(&)  str2[N2_] 
)
constexpr