mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-12 19:31:41 +00:00
Merge branch 'development' into stringTableEmptyString
This commit is contained in:
commit
6963d35145
120 changed files with 2503 additions and 5816 deletions
|
|
@ -95,8 +95,8 @@ struct ConsoleLogEntry
|
|||
Script,
|
||||
GUI,
|
||||
Network,
|
||||
GGConnect,
|
||||
NUM_TYPE
|
||||
GGConnect,
|
||||
NUM_TYPE
|
||||
} mType;
|
||||
|
||||
/// Indicates the actual log entry.
|
||||
|
|
@ -897,34 +897,28 @@ template<typename P1> struct _EngineConsoleExecCallbackHelper;
|
|||
|
||||
namespace Con
|
||||
{
|
||||
/// @name Console Execution - executef
|
||||
/// {
|
||||
///
|
||||
/// Implements a script function thunk which automatically converts parameters to relevant console types.
|
||||
/// Can be used as follows:
|
||||
/// - Con::executef("functionName", ...);
|
||||
/// - Con::executef(mySimObject, "functionName", ...);
|
||||
///
|
||||
/// NOTE: if you get a rather cryptic template error coming through here, most likely you are trying to
|
||||
/// convert a parameter which EngineMarshallType does not have a specialization for.
|
||||
/// Another problem can occur if you do not include "console/simBase.h" and "console/engineAPI.h"
|
||||
/// since _EngineConsoleExecCallbackHelper and SimConsoleThreadExecCallback are required.
|
||||
///
|
||||
/// @see _EngineConsoleExecCallbackHelper
|
||||
///
|
||||
template<typename A> ConsoleValueRef executef(A a) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(); }
|
||||
template<typename A, typename B> ConsoleValueRef executef(A a, B b) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b); }
|
||||
template<typename A, typename B, typename C> ConsoleValueRef executef(A a, B b, C c) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c); }
|
||||
template<typename A, typename B, typename C, typename D> ConsoleValueRef executef(A a, B b, C c, D d) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d); }
|
||||
template<typename A, typename B, typename C, typename D, typename E> ConsoleValueRef executef(A a, B b, C c, D d, E e) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e); }
|
||||
template<typename A, typename B, typename C, typename D, typename E, typename F> ConsoleValueRef executef(A a, B b, C c, D d, E e, F f) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e, f); }
|
||||
template<typename A, typename B, typename C, typename D, typename E, typename F, typename G> ConsoleValueRef executef(A a, B b, C c, D d, E e, F f, G g) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e, f, g); }
|
||||
template<typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H> ConsoleValueRef executef(A a, B b, C c, D d, E e, F f, G g, H h) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e, f, g, h); }
|
||||
template<typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I> ConsoleValueRef executef(A a, B b, C c, D d, E e, F f, G g, H h, I i) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e, f, g, h, i); }
|
||||
template<typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J> ConsoleValueRef executef(A a, B b, C c, D d, E e, F f, G g, H h, I i, J j) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e, f, g, h, i, j); }
|
||||
template<typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K> ConsoleValueRef executef(A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e, f, g, h, i, j, k); }
|
||||
template<typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L> ConsoleValueRef executef(A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l) { _EngineConsoleExecCallbackHelper<A> callback( a ); return callback.template call<ConsoleValueRef>(b, c, d, e, f, g, h, i, j, k, l); }
|
||||
/// }
|
||||
/// @name Console Execution - executef
|
||||
/// {
|
||||
///
|
||||
/// Implements a script function thunk which automatically converts parameters to relevant console types.
|
||||
/// Can be used as follows:
|
||||
/// - Con::executef("functionName", ...);
|
||||
/// - Con::executef(mySimObject, "functionName", ...);
|
||||
///
|
||||
/// NOTE: if you get a rather cryptic template error coming through here, most likely you are trying to
|
||||
/// convert a parameter which EngineMarshallType does not have a specialization for.
|
||||
/// Another problem can occur if you do not include "console/simBase.h" and "console/engineAPI.h"
|
||||
/// since _EngineConsoleExecCallbackHelper and SimConsoleThreadExecCallback are required.
|
||||
///
|
||||
/// @see _EngineConsoleExecCallbackHelper
|
||||
///
|
||||
template<typename R, typename ...ArgTs>
|
||||
ConsoleValueRef executef(R r, ArgTs ...argTs)
|
||||
{
|
||||
_EngineConsoleExecCallbackHelper<R> callback( r );
|
||||
return callback.template call<ConsoleValueRef>(argTs...);
|
||||
}
|
||||
/// }
|
||||
};
|
||||
|
||||
extern void expandEscape(char *dest, const char *src);
|
||||
|
|
@ -1149,19 +1143,19 @@ class ConsoleStackFrameSaver
|
|||
{
|
||||
public:
|
||||
|
||||
bool mSaved;
|
||||
bool mSaved;
|
||||
|
||||
ConsoleStackFrameSaver() : mSaved(false)
|
||||
{
|
||||
}
|
||||
ConsoleStackFrameSaver() : mSaved(false)
|
||||
{
|
||||
}
|
||||
|
||||
~ConsoleStackFrameSaver()
|
||||
{
|
||||
restore();
|
||||
}
|
||||
~ConsoleStackFrameSaver()
|
||||
{
|
||||
restore();
|
||||
}
|
||||
|
||||
void save();
|
||||
void restore();
|
||||
void save();
|
||||
void restore();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2141,13 +2141,18 @@ DefineEngineFunction( gotoWebPage, void, ( const char* address ),,
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
DefineEngineFunction( displaySplashWindow, bool, (const char* path), ("art/gui/splash.bmp"),
|
||||
DefineEngineFunction( displaySplashWindow, bool, (const char* path), (""),
|
||||
"Display a startup splash window suitable for showing while the engine still starts up.\n\n"
|
||||
"@note This is currently only implemented on Windows.\n\n"
|
||||
"@param path relative path to splash screen image to display.\n"
|
||||
"@return True if the splash window could be successfully initialized.\n\n"
|
||||
"@ingroup Platform" )
|
||||
{
|
||||
if (path == "")
|
||||
{
|
||||
path = Con::getVariable("$Core::splashWindowImage");
|
||||
}
|
||||
|
||||
return Platform::displaySplashWindow(path);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include "console/engineStructs.h"
|
||||
#endif
|
||||
|
||||
template<typename T> inline const T nullAsType(){ return nullptr; }
|
||||
|
||||
/// @file
|
||||
/// Legacy TS-based console type definitions.
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -23,6 +23,8 @@
|
|||
#ifndef _ENGINEFUNCTIONS_H_
|
||||
#define _ENGINEFUNCTIONS_H_
|
||||
|
||||
#include <tuple>
|
||||
|
||||
#ifndef _ENGINEEXPORTS_H_
|
||||
#include "console/engineExports.h"
|
||||
#endif
|
||||
|
|
@ -87,693 +89,38 @@ struct EngineFunctionDefaultArguments
|
|||
// Structure encapsulating default arguments to an engine API function.
|
||||
template< typename T >
|
||||
struct _EngineFunctionDefaultArguments {};
|
||||
template<>
|
||||
struct _EngineFunctionDefaultArguments< void() > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
};
|
||||
template< typename A >
|
||||
struct _EngineFunctionDefaultArguments< void( A ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( A a )
|
||||
: a( a )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
};
|
||||
template< typename A, typename B >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( B b )
|
||||
: b( b )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( A a, B b )
|
||||
: a( a ),
|
||||
b( b )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
};
|
||||
template< typename A, typename B, typename C >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( C c )
|
||||
: c( c )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( B b, C c )
|
||||
: b( b ),
|
||||
c( c )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( D d )
|
||||
: d( d )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( C c, D d )
|
||||
: c( c ),
|
||||
d( d )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( E e )
|
||||
: e( e )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( D d, E e )
|
||||
: d( d ),
|
||||
e( e )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E, typename F >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E, F ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
typename EngineTypeTraits< F >::DefaultArgumentValueStoreType f;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( F f )
|
||||
: f( f )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( E e, F f )
|
||||
: e( e ),
|
||||
f( f )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( D d, E e, F f )
|
||||
: d( d ),
|
||||
e( e ),
|
||||
f( f )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e, F f )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e, F f )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e, F f )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f )
|
||||
{ mNumDefaultArgs = 6; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E, typename F, typename G >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E, F, G ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
typename EngineTypeTraits< F >::DefaultArgumentValueStoreType f;
|
||||
typename EngineTypeTraits< G >::DefaultArgumentValueStoreType g;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( G g )
|
||||
: g( g )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( F f, G g )
|
||||
: f( f ),
|
||||
g( g )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( E e, F f, G g )
|
||||
: e( e ),
|
||||
f( f ),
|
||||
g( g )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( D d, E e, F f, G g )
|
||||
: d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e, F f, G g )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e, F f, G g )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g )
|
||||
{ mNumDefaultArgs = 6; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e, F f, G g )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g )
|
||||
{ mNumDefaultArgs = 7; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E, F, G, H ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
typename EngineTypeTraits< F >::DefaultArgumentValueStoreType f;
|
||||
typename EngineTypeTraits< G >::DefaultArgumentValueStoreType g;
|
||||
typename EngineTypeTraits< H >::DefaultArgumentValueStoreType h;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( H h )
|
||||
: h( h )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( G g, H h )
|
||||
: g( g ),
|
||||
h( h )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( F f, G g, H h )
|
||||
: f( f ),
|
||||
g( g ),
|
||||
h( h )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( E e, F f, G g, H h )
|
||||
: e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( D d, E e, F f, G g, H h )
|
||||
: d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e, F f, G g, H h )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h )
|
||||
{ mNumDefaultArgs = 6; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e, F f, G g, H h )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h )
|
||||
{ mNumDefaultArgs = 7; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e, F f, G g, H h )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h )
|
||||
{ mNumDefaultArgs = 8; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E, F, G, H, I ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
typename EngineTypeTraits< F >::DefaultArgumentValueStoreType f;
|
||||
typename EngineTypeTraits< G >::DefaultArgumentValueStoreType g;
|
||||
typename EngineTypeTraits< H >::DefaultArgumentValueStoreType h;
|
||||
typename EngineTypeTraits< I >::DefaultArgumentValueStoreType i;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( I i )
|
||||
: i( i )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( H h, I i )
|
||||
: h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( G g, H h, I i )
|
||||
: g( g ),
|
||||
h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( F f, G g, H h, I i )
|
||||
: f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( E e, F f, G g, H h, I i )
|
||||
: e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
_EngineFunctionDefaultArguments( D d, E e, F f, G g, H h, I i )
|
||||
: d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 6; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e, F f, G g, H h, I i )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 7; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e, F f, G g, H h, I i )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 8; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e, F f, G g, H h, I i )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i )
|
||||
{ mNumDefaultArgs = 9; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E, F, G, H, I, J ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
typename EngineTypeTraits< F >::DefaultArgumentValueStoreType f;
|
||||
typename EngineTypeTraits< G >::DefaultArgumentValueStoreType g;
|
||||
typename EngineTypeTraits< H >::DefaultArgumentValueStoreType h;
|
||||
typename EngineTypeTraits< I >::DefaultArgumentValueStoreType i;
|
||||
typename EngineTypeTraits< J >::DefaultArgumentValueStoreType j;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( J j )
|
||||
: j( j )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( I i, J j )
|
||||
: i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( H h, I i, J j )
|
||||
: h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( G g, H h, I i, J j )
|
||||
: g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( F f, G g, H h, I i, J j )
|
||||
: f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
_EngineFunctionDefaultArguments( E e, F f, G g, H h, I i, J j )
|
||||
: e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 6; }
|
||||
_EngineFunctionDefaultArguments( D d, E e, F f, G g, H h, I i, J j )
|
||||
: d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 7; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e, F f, G g, H h, I i, J j )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 8; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e, F f, G g, H h, I i, J j )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 9; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e, F f, G g, H h, I i, J j )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j )
|
||||
{ mNumDefaultArgs = 10; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E, F, G, H, I, J, K ) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
typename EngineTypeTraits< F >::DefaultArgumentValueStoreType f;
|
||||
typename EngineTypeTraits< G >::DefaultArgumentValueStoreType g;
|
||||
typename EngineTypeTraits< H >::DefaultArgumentValueStoreType h;
|
||||
typename EngineTypeTraits< I >::DefaultArgumentValueStoreType i;
|
||||
typename EngineTypeTraits< J >::DefaultArgumentValueStoreType j;
|
||||
typename EngineTypeTraits< K >::DefaultArgumentValueStoreType k;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( K k )
|
||||
: k( k )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( J j, K k )
|
||||
: j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( I i, J j, K k )
|
||||
: i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( H h, I i, J j, K k )
|
||||
: h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( G g, H h, I i, J j, K k )
|
||||
: g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
_EngineFunctionDefaultArguments( F f, G g, H h, I i, J j, K k )
|
||||
: f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 6; }
|
||||
_EngineFunctionDefaultArguments( E e, F f, G g, H h, I i, J j, K k )
|
||||
: e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 7; }
|
||||
_EngineFunctionDefaultArguments( D d, E e, F f, G g, H h, I i, J j, K k )
|
||||
: d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 8; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e, F f, G g, H h, I i, J j, K k )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 9; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e, F f, G g, H h, I i, J j, K k )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 10; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k )
|
||||
{ mNumDefaultArgs = 11; }
|
||||
};
|
||||
template< typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L >
|
||||
struct _EngineFunctionDefaultArguments< void( A, B, C, D, E, F, G, H, I, J, K, L ) > : public EngineFunctionDefaultArguments
|
||||
template<typename ...ArgTs>
|
||||
struct _EngineFunctionDefaultArguments< void(ArgTs...) > : public EngineFunctionDefaultArguments
|
||||
{
|
||||
typename EngineTypeTraits< A >::DefaultArgumentValueStoreType a;
|
||||
typename EngineTypeTraits< B >::DefaultArgumentValueStoreType b;
|
||||
typename EngineTypeTraits< C >::DefaultArgumentValueStoreType c;
|
||||
typename EngineTypeTraits< D >::DefaultArgumentValueStoreType d;
|
||||
typename EngineTypeTraits< E >::DefaultArgumentValueStoreType e;
|
||||
typename EngineTypeTraits< F >::DefaultArgumentValueStoreType f;
|
||||
typename EngineTypeTraits< G >::DefaultArgumentValueStoreType g;
|
||||
typename EngineTypeTraits< H >::DefaultArgumentValueStoreType h;
|
||||
typename EngineTypeTraits< I >::DefaultArgumentValueStoreType i;
|
||||
typename EngineTypeTraits< J >::DefaultArgumentValueStoreType j;
|
||||
typename EngineTypeTraits< K >::DefaultArgumentValueStoreType k;
|
||||
typename EngineTypeTraits< L >::DefaultArgumentValueStoreType l;
|
||||
|
||||
_EngineFunctionDefaultArguments()
|
||||
{ mNumDefaultArgs = 0; }
|
||||
_EngineFunctionDefaultArguments( L l )
|
||||
: l( l )
|
||||
{ mNumDefaultArgs = 1; }
|
||||
_EngineFunctionDefaultArguments( K k, L l )
|
||||
: k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 2; }
|
||||
_EngineFunctionDefaultArguments( J j, K k, L l )
|
||||
: j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 3; }
|
||||
_EngineFunctionDefaultArguments( I i, J j, K k, L l )
|
||||
: i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 4; }
|
||||
_EngineFunctionDefaultArguments( H h, I i, J j, K k, L l )
|
||||
: h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 5; }
|
||||
_EngineFunctionDefaultArguments( G g, H h, I i, J j, K k, L l )
|
||||
: g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 6; }
|
||||
_EngineFunctionDefaultArguments( F f, G g, H h, I i, J j, K k, L l )
|
||||
: f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 7; }
|
||||
_EngineFunctionDefaultArguments( E e, F f, G g, H h, I i, J j, K k, L l )
|
||||
: e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 8; }
|
||||
_EngineFunctionDefaultArguments( D d, E e, F f, G g, H h, I i, J j, K k, L l )
|
||||
: d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 9; }
|
||||
_EngineFunctionDefaultArguments( C c, D d, E e, F f, G g, H h, I i, J j, K k, L l )
|
||||
: c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 10; }
|
||||
_EngineFunctionDefaultArguments( B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l )
|
||||
: b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 11; }
|
||||
_EngineFunctionDefaultArguments( A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l )
|
||||
: a( a ),
|
||||
b( b ),
|
||||
c( c ),
|
||||
d( d ),
|
||||
e( e ),
|
||||
f( f ),
|
||||
g( g ),
|
||||
h( h ),
|
||||
i( i ),
|
||||
j( j ),
|
||||
k( k ),
|
||||
l( l )
|
||||
{ mNumDefaultArgs = 12; }
|
||||
template<typename T> using DefVST = typename EngineTypeTraits<T>::DefaultArgumentValueStoreType;
|
||||
std::tuple<DefVST<ArgTs> ...> mArgs;
|
||||
private:
|
||||
using SelfType = _EngineFunctionDefaultArguments< void(ArgTs...) >;
|
||||
|
||||
template<size_t ...> struct Seq {};
|
||||
template<size_t N, size_t ...S> struct Gens : Gens<N-1, N-1, S...> {};
|
||||
|
||||
template<size_t ...I> struct Gens<0, I...>{ typedef Seq<I...> type; };
|
||||
|
||||
template<typename ...TailTs, size_t ...I>
|
||||
static void copyHelper(std::tuple<DefVST<ArgTs> ...> &args, std::tuple<DefVST<TailTs> ...> &defaultArgs, Seq<I...>) {
|
||||
std::tie(std::get<I + (sizeof...(ArgTs) - sizeof...(TailTs))>(args)...) = defaultArgs;
|
||||
}
|
||||
|
||||
template<typename ...TailTs> using MaybeSelfEnabled = typename std::enable_if<sizeof...(TailTs) <= sizeof...(ArgTs), decltype(mArgs)>::type;
|
||||
|
||||
template<typename ...TailTs> static MaybeSelfEnabled<TailTs...> tailInit(TailTs ...tail) {
|
||||
std::tuple<DefVST<ArgTs>...> argsT;
|
||||
std::tuple<DefVST<TailTs>...> tailT = std::make_tuple(tail...);
|
||||
SelfType::copyHelper<TailTs...>(argsT, tailT, typename Gens<sizeof...(TailTs)>::type());
|
||||
return argsT;
|
||||
};
|
||||
|
||||
public:
|
||||
template<typename ...TailTs> _EngineFunctionDefaultArguments(TailTs ...tail)
|
||||
: EngineFunctionDefaultArguments({sizeof...(TailTs)}), mArgs(SelfType::tailInit(tail...))
|
||||
{}
|
||||
};
|
||||
|
||||
#pragma pack( pop )
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ DECLARE_PRIMITIVE_R(S32);
|
|||
DECLARE_PRIMITIVE_R(U32);
|
||||
DECLARE_PRIMITIVE_R(F32);
|
||||
DECLARE_PRIMITIVE_R(F64);
|
||||
DECLARE_PRIMITIVE_R(U64);
|
||||
DECLARE_PRIMITIVE_R(S64);
|
||||
DECLARE_PRIMITIVE_R(void*);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -648,395 +648,33 @@ template< typename T > const EngineFunctionTypeInfo< T > _EngineFunctionTypeTrai
|
|||
// Function Argument Type Infos.
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
template< typename R >
|
||||
struct _EngineArgumentTypeTable< R() > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 0;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
#ifdef TORQUE_COMPILER_GCC
|
||||
static const EngineTypeInfo* const ARGS[ 0 ];
|
||||
|
||||
#ifdef TORQUE_COMILER_GCC
|
||||
#define ARGS_SIZE_SAFE(wanted) (wanted)
|
||||
#else
|
||||
static const EngineTypeInfo* const ARGS[ 1 ];
|
||||
#define ARGS_SIZE_SAFE(wanted) (((wanted) < 1) ? 1 : (wanted))
|
||||
#endif
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R > const EngineTypeInfo* const _EngineArgumentTypeTable< R() >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
#ifdef TORQUE_COMPILER_GCC
|
||||
template< typename R > const EngineTypeInfo* const _EngineArgumentTypeTable< R() >::ARGS[ 0 ] = {};
|
||||
#else
|
||||
template< typename R > const EngineTypeInfo* const _EngineArgumentTypeTable< R() >::ARGS[ 1 ] = {};
|
||||
#endif
|
||||
template< typename R >
|
||||
struct _EngineArgumentTypeTable< R( ... ) > : public _EngineArgumentTypeTable< R() >
|
||||
template< typename R, typename ...ArgTs >
|
||||
struct _EngineArgumentTypeTable< R( ArgTs ... ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A >
|
||||
struct _EngineArgumentTypeTable< R( A ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 1;
|
||||
static const U32 NUM_ARGUMENTS = sizeof...(ArgTs);
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 1 ];
|
||||
static const EngineTypeInfo* const ARGS[ ARGS_SIZE_SAFE(sizeof...(ArgTs)) ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A ) >::ARGS[ 1 ] =
|
||||
template< typename R, typename ...ArgTs >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( ArgTs ... ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename ...ArgTs >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( ArgTs ... ) >::ARGS[ ARGS_SIZE_SAFE(sizeof...(ArgTs)) ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >()
|
||||
TYPE< typename EngineTypeTraits< ArgTs >::Type >() ...
|
||||
};
|
||||
template< typename R, typename A >
|
||||
struct _EngineArgumentTypeTable< R( A, ... ) > : public _EngineArgumentTypeTable< R( A ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B >
|
||||
struct _EngineArgumentTypeTable< R( A, B ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 2;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 2 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B ) >::ARGS[ 2 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B >
|
||||
struct _EngineArgumentTypeTable< R( A, B, ... ) > : public _EngineArgumentTypeTable< R( A, B ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 3;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 3 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C ) >::ARGS[ 3 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, ... ) > : public _EngineArgumentTypeTable< R( A, B, C ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 4;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 4 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D ) >::ARGS[ 4 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 5;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 5 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E ) >::ARGS[ 5 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 6;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 6 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F ) >::ARGS[ 6 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< F >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E, F ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 7;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 7 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G ) >::ARGS[ 7 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< F >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< G >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E, F, G ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 8;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 8 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H ) >::ARGS[ 8 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< F >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< G >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< H >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 9;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 9 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I ) >::ARGS[ 9 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< F >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< G >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< H >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< I >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 10;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 10 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J ) >::ARGS[ 10 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< F >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< G >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< H >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< I >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< J >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 11;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 11 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K ) >::ARGS[ 11 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< F >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< G >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< H >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< I >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< J >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< K >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
};
|
||||
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K, L ) > : public EngineArgumentTypeTable
|
||||
{
|
||||
static const U32 NUM_ARGUMENTS = 12;
|
||||
static const bool VARIADIC = false;
|
||||
static const EngineTypeInfo* const RETURN;
|
||||
static const EngineTypeInfo* const ARGS[ 12 ];
|
||||
|
||||
_EngineArgumentTypeTable()
|
||||
: EngineArgumentTypeTable( TYPE< typename EngineTypeTraits< R >::Type >(), NUM_ARGUMENTS, ARGS ) {}
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K, L ) >::RETURN = TYPE< typename EngineTypeTraits< R >::Type >();
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L >
|
||||
const EngineTypeInfo* const _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K, L ) >::ARGS[ 12 ] =
|
||||
{
|
||||
TYPE< typename EngineTypeTraits< A >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< B >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< C >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< D >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< E >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< F >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< G >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< H >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< I >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< J >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< K >::Type >(),
|
||||
TYPE< typename EngineTypeTraits< L >::Type >()
|
||||
};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L >
|
||||
struct _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K, L, ... ) > : public _EngineArgumentTypeTable< R( A, B, C, D, E, F, G, H, I, J, K, L ) >
|
||||
template< typename R, typename ... ArgTs >
|
||||
struct _EngineArgumentTypeTable< R( ArgTs ..., ... ) > : public _EngineArgumentTypeTable< R( ArgTs ... ) >
|
||||
{
|
||||
static const bool VARIADIC = true;
|
||||
_EngineArgumentTypeTable() {}
|
||||
|
|
|
|||
|
|
@ -284,58 +284,10 @@ template< typename T > const EngineTypeInfo* const _EngineFunctionTypeTraits< T
|
|||
// are not guaranteed to be any meaningful value or base types to the engine type system.
|
||||
#define T( x ) typename EngineTypeTraits< x >::ValueType
|
||||
|
||||
template< typename R >
|
||||
struct _EngineTypeTraits< R() > : public _EngineFunctionTypeTraits< T( R )() > {};
|
||||
template< typename R >
|
||||
struct _EngineTypeTraits< R( ... ) > : public _EngineFunctionTypeTraits< T( R )( ... ) > {};
|
||||
template< typename R, typename A >
|
||||
struct _EngineTypeTraits< R( A ) > : public _EngineFunctionTypeTraits< T( R )( T( A ) ) > {};
|
||||
template< typename R, typename A >
|
||||
struct _EngineTypeTraits< R( A, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), ... ) > {};
|
||||
template< typename R, typename A, typename B >
|
||||
struct _EngineTypeTraits< R( A, B ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ) ) > {};
|
||||
template< typename R, typename A, typename B >
|
||||
struct _EngineTypeTraits< R( A, B, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C >
|
||||
struct _EngineTypeTraits< R( A, B, C ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C >
|
||||
struct _EngineTypeTraits< R( A, B, C, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D >
|
||||
struct _EngineTypeTraits< R( A, B, C, D ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( K ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( K ), ... ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, L ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( K ), T( L ) ) > {};
|
||||
template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L >
|
||||
struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, L, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( K ), T( L ), ... ) > {};
|
||||
template<typename R, typename ...ArgTs>
|
||||
struct _EngineTypeTraits< R(ArgTs ...) > : public _EngineFunctionTypeTraits<T(R)(T(ArgTs)...)> {};
|
||||
template<typename R, typename ...ArgTs>
|
||||
struct _EngineTypeTraits< R(ArgTs ..., ...) > : public _EngineFunctionTypeTraits<T(R)(T(ArgTs)..., ...)> {};
|
||||
|
||||
#undef T
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue