7

I would like to use functions with more than 10 arguments with luabind, but I get some C2784 and C2780 compiler errors (VS2012 Express).
It seems that the problem is a limitation of the used boost library. In luabind it is possible to set the LUABIND_MAX_ARITY option, but it depends on what is possible by boost. How could I overcome this limitiation?

Thanks!

Code:

luabind::module(lua) [
    luabind::class_<WkmParserDB>("WkmParserDB")
        .def("insertInterface", &WkmParserDB::insertInterface)
        .def("insertIntfStats", &WkmParserDB::insertIntfStats)
        .def("intertIntfN1k", &WkmParserDB::intertIntfN1k)
];

The function insertIntfStats has about 20 std::string arguments, nothing else. The other two functions have less than 8 arguments (std::string as well). When I comment the line ".def("insertIntfStats", &WkmParserDB::insertIntfStats)" it compiles and works.

Errors:

Fehler  3   error C2784: "boost::mpl::vector12<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  4   error C2780: 'boost::mpl::vector12<R,const T&,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) const)': Erwartet 1 Argumente - 2 unterstützt    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  5   error C2784: "boost::mpl::vector12<R,most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  6   error C2780: 'boost::mpl::vector12<R,T&,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9))': Erwartet 1 Argumente - 2 unterstützt    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  7   error C2784: "boost::mpl::vector11<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9),...)": template-Argument für "R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  8   error C2784: "boost::mpl::vector11<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6,A7,A8> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  9   error C2780: 'boost::mpl::vector11<R,const T&,A0,A1,A2,A3,A4,A5,A6,A7,A8> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8) const)': Erwartet 1 Argumente - 2 unterstützt  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  10  error C2784: "boost::mpl::vector11<R,most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6,A7,A8> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  11  error C2780: 'boost::mpl::vector11<R,T&,A0,A1,A2,A3,A4,A5,A6,A7,A8> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7,A8))': Erwartet 1 Argumente - 2 unterstützt  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  12  error C2784: "boost::mpl::vector10<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7,A8),...)": template-Argument für "R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7,A8)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  13  error C2784: "boost::mpl::vector10<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6,A7> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  14  error C2780: 'boost::mpl::vector10<R,const T&,A0,A1,A2,A3,A4,A5,A6,A7> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7) const)': Erwartet 1 Argumente - 2 unterstützt    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  15  error C2784: "boost::mpl::vector10<R,most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6,A7> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  16  error C2780: 'boost::mpl::vector10<R,T&,A0,A1,A2,A3,A4,A5,A6,A7> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6,A7))': Erwartet 1 Argumente - 2 unterstützt    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  17  error C2784: "boost::mpl::vector9<T0,T1,T2,T3,T4,T5,T6,T7,T8> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7),...)": template-Argument für "R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  18  error C2784: "boost::mpl::vector9<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  19  error C2780: 'boost::mpl::vector9<R,const T&,A0,A1,A2,A3,A4,A5,A6> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6) const)': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  20  error C2784: "boost::mpl::vector9<R,most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5,A6> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  21  error C2780: 'boost::mpl::vector9<R,T&,A0,A1,A2,A3,A4,A5,A6> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5,A6))': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  22  error C2784: "boost::mpl::vector8<T0,T1,T2,T3,T4,T5,T6,T7> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6),...)": template-Argument für "R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  23  error C2784: "boost::mpl::vector8<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  24  error C2780: 'boost::mpl::vector8<R,const T&,A0,A1,A2,A3,A4,A5> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5) const)': Erwartet 1 Argumente - 2 unterstützt d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  25  error C2784: "boost::mpl::vector8<R,most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4,A5> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4,A5)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  26  error C2780: 'boost::mpl::vector8<R,T&,A0,A1,A2,A3,A4,A5> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4,A5))': Erwartet 1 Argumente - 2 unterstützt d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  27  error C2784: "boost::mpl::vector7<T0,T1,T2,T3,T4,T5,T6> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2,A3,A4,A5),...)": template-Argument für "R (__cdecl *)(A0,A1,A2,A3,A4,A5)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  28  error C2784: "boost::mpl::vector7<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  29  error C2780: 'boost::mpl::vector7<R,const T&,A0,A1,A2,A3,A4> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4) const)': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  30  error C2784: "boost::mpl::vector7<R,most_derived<T,Wrapped>::type&,A0,A1,A2,A3,A4> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3,A4)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  31  error C2780: 'boost::mpl::vector7<R,T&,A0,A1,A2,A3,A4> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3,A4))': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  32  error C2784: "boost::mpl::vector6<T0,T1,T2,T3,T4,T5> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2,A3,A4),...)": template-Argument für "R (__cdecl *)(A0,A1,A2,A3,A4)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  33  error C2784: "boost::mpl::vector6<R,const most_derived<T,Wrapped>::type&,A0,A1,A2,A3> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  34  error C2780: 'boost::mpl::vector6<R,const T&,A0,A1,A2,A3> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3) const)': Erwartet 1 Argumente - 2 unterstützt d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  35  error C2784: "boost::mpl::vector6<R,most_derived<T,Wrapped>::type&,A0,A1,A2,A3> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2,A3)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  36  error C2780: 'boost::mpl::vector6<R,T&,A0,A1,A2,A3> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2,A3))': Erwartet 1 Argumente - 2 unterstützt d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  37  error C2784: "boost::mpl::vector5<T0,T1,T2,T3,T4> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2,A3),...)": template-Argument für "R (__cdecl *)(A0,A1,A2,A3)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  38  error C2784: "boost::mpl::vector5<R,const most_derived<T,Wrapped>::type&,A0,A1,A2> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  39  error C2780: 'boost::mpl::vector5<R,const T&,A0,A1,A2> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2) const)': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  40  error C2784: "boost::mpl::vector5<R,most_derived<T,Wrapped>::type&,A0,A1,A2> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1,A2)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  41  error C2780: 'boost::mpl::vector5<R,T&,A0,A1,A2> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1,A2))': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  42  error C2784: "boost::mpl::vector4<T0,T1,T2,T3> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1,A2),...)": template-Argument für "R (__cdecl *)(A0,A1,A2)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  43  error C2784: "boost::mpl::vector4<R,const most_derived<T,Wrapped>::type&,A0,A1> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  44  error C2780: 'boost::mpl::vector4<R,const T&,A0,A1> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1) const)': Erwartet 1 Argumente - 2 unterstützt d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  45  error C2784: "boost::mpl::vector4<R,most_derived<T,Wrapped>::type&,A0,A1> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0,A1)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  46  error C2780: 'boost::mpl::vector4<R,T&,A0,A1> luabind::detail::deduce_signature(R (__thiscall T::* )(A0,A1))': Erwartet 1 Argumente - 2 unterstützt d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  47  error C2784: "boost::mpl::vector3<T0,T1,T2> luabind::detail::deduce_signature(R (__cdecl *)(A0,A1),...)": template-Argument für "R (__cdecl *)(A0,A1)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  48  error C2784: "boost::mpl::vector3<R,const most_derived<T,Wrapped>::type&,A0> luabind::detail::deduce_signature(R (__thiscall T::* )(A0) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(A0) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  49  error C2780: 'boost::mpl::vector3<R,const T&,A0> luabind::detail::deduce_signature(R (__thiscall T::* )(A0) const)': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  50  error C2784: "boost::mpl::vector3<R,most_derived<T,Wrapped>::type&,A0> luabind::detail::deduce_signature(R (__thiscall T::* )(A0),Wrapped *)": template-Argument für "R (__thiscall T::* )(A0)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden. d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  51  error C2780: 'boost::mpl::vector3<R,T&,A0> luabind::detail::deduce_signature(R (__thiscall T::* )(A0))': Erwartet 1 Argumente - 2 unterstützt   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  52  error C2784: "boost::mpl::vector2<T0,T1> luabind::detail::deduce_signature(R (__cdecl *)(A0),...)": template-Argument für "R (__cdecl *)(A0)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.   d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  53  error C2784: "boost::mpl::vector2<R,const most_derived<T,Wrapped>::type&> luabind::detail::deduce_signature(R (__thiscall T::* )(void) const,Wrapped *)": template-Argument für "R (__thiscall T::* )(void) const" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  54  error C2780: 'boost::mpl::vector2<R,const T&> luabind::detail::deduce_signature(R (__thiscall T::* )(void) const)': Erwartet 1 Argumente - 2 unterstützt    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  55  error C2784: "boost::mpl::vector2<R,most_derived<T,Wrapped>::type&> luabind::detail::deduce_signature(R (__thiscall T::* )(void),Wrapped *)": template-Argument für "R (__thiscall T::* )(void)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  56  error C2780: 'boost::mpl::vector2<R,T&> luabind::detail::deduce_signature(R (__thiscall T::* )(void))': Erwartet 1 Argumente - 2 unterstützt    d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  57  error C2784: "boost::mpl::vector1<T0> luabind::detail::deduce_signature(R (__cdecl *)(void),...)": template-Argument für "R (__cdecl *)(void)" konnte nicht von "std::basic_string<_Elem,_Traits,_Alloc> " hergeleitet werden.  d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
Fehler  58  error C2780: 'luabind::adl::object luabind::make_function(lua_State *,F)': Erwartet 2 Argumente - 4 unterstützt d:\programmieren\luabind-0.9.1\luabind\class.hpp    311 1   wktools4
mspoerr
  • 2,680
  • 5
  • 32
  • 35
  • You should probably include all your errors (complete and unedited) in your question, together with some relevant code. – Some programmer dude Feb 01 '13 at 13:45
  • 1
    Have you tried setting BOOST_MPL_LIMIT_VECTOR_SIZE to something larger? The default is 20. – jmetcalfe Feb 03 '13 at 18:41
  • (you also probably would need BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) – jmetcalfe Feb 03 '13 at 18:47
  • 2
    Actually seems like this is pretty difficult. luabind seems to be pretty tightly coupled to boost::tuples::tuple, which has no real way of extending beyond the default limit (if it used boost fusion tuples this would be pretty simple I believe). It's not a very satisfactory solution, but can you just use a wrapper function with the args bundled into a struct? – jmetcalfe Feb 03 '13 at 21:02
  • Thank you for the answers! I aleady thought of splitting the function, or using a struct, but it would have been nice if there is a solution to overcome the limit. But in this case I fear I have to take it as it is. – mspoerr Feb 04 '13 at 08:10
  • @mspoerr It seems like it. I think it would be a pretty easy change to luabind to get this working (optionally replace tuple with boost fusion tuple or std::tuple where available), but the project seems dead so I doubt it would actually get merged. – jmetcalfe Feb 05 '13 at 08:15
  • 6
    The recomendations I've seen is to never go beyond some 3 to 5 parameters. If you have 10, group them into structures or split up the function. – vonbrand Feb 08 '13 at 18:18
  • @jmetcalfe: I realize I'm late to this party, but I don't think Luabind is totally dead--if someone submits a worthwhile patch, I bet Daniel Wallin would merge it. I did so myself a few years ago, and it was quiet back then too. But quiet is not terrible--Luabind is just a stable project without many bugs to fix. :) – John Zwinck Jun 13 '13 at 12:48

2 Answers2

1

Although this is a problem, the bigger problem is that you've got a function that takes more than 10 parameters!!

What you need to do is look at simplifying the interface to this function, probably be extracing the parameters out into a structure or class (or dictionary in Lua, I think).

Sean
  • 60,939
  • 11
  • 97
  • 136
0

Try to use a single table as your parameter.

void MyFunction ( luabind::adl::object const & theTable)
{
    if(luabind::type(theTable) == LUA_TTABLE)
    {
        // Iterate or look for specific indexes by name or number.
        // Follow convention.
    }
}

This system will also enable you to have optional parameters and thus allow you to call this function in different variations without having to re-write it.