//------------------------------------------------------------------------------
/*
https://github.com/vinniefalco/LuaBridge
-
+
Copyright 2012, Vinnie Falco <vinnie.falco@gmail.com>
License: The MIT License (http://www.opensource.org/licenses/mit-license.php)
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1> Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2> > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3> > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4> > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5> > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6> > > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7> > > > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7, TypeList <P8> > > > > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1> Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params> &tvl)
{
return (obj->*fp)(tvl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2> > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3> > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4> > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5> > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6> > > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7> > > > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7, TypeList <P8> > > > > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1> Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd);
}
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2> > Params;
static R call (T const* obj, R (T::*fp) (P1, P2) const,
- TypeListValues <Params> tvl)
+ TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3> > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4> > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5> > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6> > > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7> > > > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7, TypeList <P8> > > > > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1> Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2> > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3> > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4> > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5> > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6> > > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7> > > > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd);
}
typedef D DeclType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7, TypeList <P8> > > > > > > > Params;
- static R call (D fp, TypeListValues <Params> tvl)
+ static R call (D fp, TypeListValues <Params>& tvl)
{
return fp (tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1> Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2> > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3> > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4> > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5> > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6> > > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7> > > > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7, TypeList <P8> > > > > > > > Params;
- static R call (T* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1> Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2> > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3> > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4> > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5> > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd,
tvl.tl.tl.tl.tl.hd);
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6> > > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7> > > > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd);
}
typedef T ClassType;
typedef R ReturnType;
typedef TypeList <P1, TypeList <P2, TypeList <P3, TypeList <P4, TypeList <P5, TypeList <P6, TypeList <P7, TypeList <P8> > > > > > > > Params;
- static R call (T const* obj, D fp, TypeListValues <Params> tvl)
+ static R call (T const* obj, D fp, TypeListValues <Params>& tvl)
{
return (obj->*fp)(tvl.hd, tvl.tl.hd, tvl.tl.tl.hd, tvl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.hd, tvl.tl.tl.tl.tl.tl.tl.tl.hd);
}