|
Lua_icxx
1.02 (Aug 2011)
|
00001 /* 00002 This file is part of the Lua_icxx library. 00003 Copyright 2010 (c) by Oliver Schoenborn. 00004 License terms in LICENSE.txt. 00005 */ 00006 00007 00008 #pragma once 00009 00010 #ifndef LUA_ICXX_FUNC_CALLS_INCLUDED 00011 #define LUA_ICXX_FUNC_CALLS_INCLUDED 00012 00013 00014 #define DECL_FN_CALL_1(METH, T_ARG) template <typename T_ARG> inline LuaTempResult METH (const T_ARG& ) const 00015 #define DECL_FN_CALL_2(METH, T_ARG1, T_ARG2) template <typename T_ARG1, typename T_ARG2> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&) const 00016 #define DECL_FN_CALL_3(METH, T_ARG1, T_ARG2, T_ARG3) template <typename T_ARG1, typename T_ARG2, typename T_ARG3> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&, const T_ARG3&) const 00017 #define DECL_FN_CALL_4(METH, T_ARG1, T_ARG2, T_ARG3, T_ARG4) template <typename T_ARG1, typename T_ARG2, typename T_ARG3, typename T_ARG4> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&, const T_ARG3&, const T_ARG4&) const 00018 #define DECL_FN_CALL_5(METH, T_ARG1, T_ARG2, T_ARG3, T_ARG4, T_ARG5) template <typename T_ARG1, typename T_ARG2, typename T_ARG3, typename T_ARG4, typename T_ARG5> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&, const T_ARG3&, const T_ARG4&, const T_ARG5&) const 00019 #define DECL_FN_CALL_6(METH, T_ARG1, T_ARG2, T_ARG3, T_ARG4, T_ARG5, T_ARG6) template <typename T_ARG1, typename T_ARG2, typename T_ARG3, typename T_ARG4, typename T_ARG5, typename T_ARG6> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&, const T_ARG3&, const T_ARG4&, const T_ARG5&, const T_ARG6&) const 00020 #define DECL_FN_CALL_7(METH, T_ARG1, T_ARG2, T_ARG3, T_ARG4, T_ARG5, T_ARG6, T_ARG7) template <typename T_ARG1, typename T_ARG2, typename T_ARG3, typename T_ARG4, typename T_ARG5, typename T_ARG6, typename T_ARG7> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&, const T_ARG3&, const T_ARG4&, const T_ARG5&, const T_ARG6&, const T_ARG7&) const 00021 #define DECL_FN_CALL_8(METH, T_ARG1, T_ARG2, T_ARG3, T_ARG4, T_ARG5, T_ARG6, T_ARG7, T_ARG8) template <typename T_ARG1, typename T_ARG2, typename T_ARG3, typename T_ARG4, typename T_ARG5, typename T_ARG6, typename T_ARG7, typename T_ARG8> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&, const T_ARG3&, const T_ARG4&, const T_ARG5&, const T_ARG6&, const T_ARG7&, const T_ARG8&) const 00022 #define DECL_FN_CALL_9(METH, T_ARG1, T_ARG2, T_ARG3, T_ARG4, T_ARG5, T_ARG6, T_ARG7, T_ARG8, T_ARG9) template <typename T_ARG1, typename T_ARG2, typename T_ARG3, typename T_ARG4, typename T_ARG5, typename T_ARG6, typename T_ARG7, typename T_ARG8, typename T_ARG9> inline LuaTempResult METH (const T_ARG1&, const T_ARG2&, const T_ARG3&, const T_ARG4&, const T_ARG5&, const T_ARG6&, const T_ARG7&, const T_ARG8&, const T_ARG9&) const 00023 #define DECL_FN_CALLS(METH) \ 00024 inline LuaTempResult METH () const; \ 00025 DECL_FN_CALL_1(METH, TT1); \ 00026 DECL_FN_CALL_2(METH, TT1, TT2); \ 00027 DECL_FN_CALL_3(METH, TT1, TT2, TT3); \ 00028 DECL_FN_CALL_4(METH, TT1, TT2, TT3, TT4); \ 00029 DECL_FN_CALL_5(METH, TT1, TT2, TT3, TT4, TT5); \ 00030 DECL_FN_CALL_6(METH, TT1, TT2, TT3, TT4, TT5, TT6); \ 00031 DECL_FN_CALL_7(METH, TT1, TT2, TT3, TT4, TT5, TT6, TT7); \ 00032 DECL_FN_CALL_8(METH, TT1, TT2, TT3, TT4, TT5, TT6, TT7, TT8); \ 00033 DECL_FN_CALL_9(METH, TT1, TT2, TT3, TT4, TT5, TT6, TT7, TT8, TT9) 00034 00035 00036 #define DEF_FN_CALL_0(CLASS_METH, BODY) inline LuaTempResult CLASS_METH() const { return BODY; } 00037 #define DEF_FN_CALL_1(CLASS_METH, BODY) template <typename TT1> inline LuaTempResult CLASS_METH( const TT1& arg1 ) const { return BODY; } 00038 #define DEF_FN_CALL_2(CLASS_METH, BODY) template <typename TT1, typename TT2> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2 ) const { return BODY; } 00039 #define DEF_FN_CALL_3(CLASS_METH, BODY) template <typename TT1, typename TT2, typename TT3> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2, const TT3& arg3 ) const { return BODY; } 00040 #define DEF_FN_CALL_4(CLASS_METH, BODY) template <typename TT1, typename TT2, typename TT3, typename TT4> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2, const TT3& arg3, const TT4& arg4 ) const { return BODY; } 00041 #define DEF_FN_CALL_5(CLASS_METH, BODY) template <typename TT1, typename TT2, typename TT3, typename TT4, typename TT5> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2, const TT3& arg3, const TT4& arg4, const TT5& arg5 ) const { return BODY; } 00042 #define DEF_FN_CALL_6(CLASS_METH, BODY) template <typename TT1, typename TT2, typename TT3, typename TT4, typename TT5, typename TT6> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2, const TT3& arg3, const TT4& arg4, const TT5& arg5, const TT6& arg6 ) const { return BODY; } 00043 #define DEF_FN_CALL_7(CLASS_METH, BODY) template <typename TT1, typename TT2, typename TT3, typename TT4, typename TT5, typename TT6, typename TT7> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2, const TT3& arg3, const TT4& arg4, const TT5& arg5, const TT6& arg6, const TT7& arg7 ) const { return BODY; } 00044 #define DEF_FN_CALL_8(CLASS_METH, BODY) template <typename TT1, typename TT2, typename TT3, typename TT4, typename TT5, typename TT6, typename TT7, typename TT8> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2, const TT3& arg3, const TT4& arg4, const TT5& arg5, const TT6& arg6, const TT7& arg7, const TT8& arg8 ) const { return BODY; } 00045 #define DEF_FN_CALL_9(CLASS_METH, BODY) template <typename TT1, typename TT2, typename TT3, typename TT4, typename TT5, typename TT6, typename TT7, typename TT8, typename TT9> inline LuaTempResult CLASS_METH( const TT1& arg1, const TT2& arg2, const TT3& arg3, const TT4& arg4, const TT5& arg5, const TT6& arg6, const TT7& arg7, const TT8& arg8, const TT9& arg9 ) const { return BODY; } 00046 00047 00048 #endif // LUA_ICXX_FUNC_CALLS_INCLUDED