Gorgon Game Engine
TMP.h File Reference

This file contains template metaprogramming methods and classes used throughout Gorgon Library. More...

Include dependency graph for TMP.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  AbstractRTT< T_ >
 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< T_ >
 Runtime type class, implements RTTH. More...
 
struct  FunctionTraits< R_(Args_...)>::Arguments< N >
 This struct allow access to types of individual arguments. More...
 
struct  FunctionTraits< R_(Args_...)>
 Determines traits of a function. More...
 
struct  Generate< N, S >
 Generates a sequence from 0 to the given value. More...
 
struct  HasParanthesisOperator< U >
 
struct  IntTuple<... >
 
class  IsStreamable< T >
 
struct  MakeIndices< Types >
 
struct  MakeIndices_impl< I, IntTuple< Indices... > >
 
struct  MakeIndices_impl< I, IntTuple< Indices... >, T, Types... >
 
struct  HasParanthesisOperator< U >::no
 
struct  Placeholder< n >
 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< T_ >
 
struct  RemoveRValueReference< T_ && >
 
class  RTT< T_ >
 Runtime Type. This class implements both RTTS and RTTI. More...
 
class  RTTC< T_ >
 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...
 

Namespaces

 Gorgon
 Root namespace for Gorgon Game Engine.
 
 Gorgon::TMP
 

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_])
 

Detailed Description

This file contains template metaprogramming methods and classes used throughout Gorgon Library.