luabind — функции с более чем 10 аргументами

Я хотел бы использовать функции с более чем 10 аргументами с luabind, но я получаю некоторые ошибки компилятора C2784 и C2780 (VS2012 Express).
Похоже, проблема заключается в ограничении используемой библиотеки boost. В luabind можно установить опцию LUABIND_MAX_ARITY, но это зависит от того, что возможно с помощью boost. Как я мог преодолеть это ограничение?

Спасибо!

Код:

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

Функция insertIntfStats имеет около 20 аргументов std::string, больше ничего. Две другие функции имеют менее 8 аргументов (также std::string). Когда я комментирую строку ".def("insertIntfStats", &WkmParserDB::insertIntfStats)", она компилируется и работает.

Ошибки:

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

person mspoerr    schedule 01.02.2013    source источник
comment
Вероятно, вам следует включить все свои ошибки (полные и неотредактированные) в свой вопрос вместе с соответствующим кодом.   -  person Some programmer dude    schedule 01.02.2013
comment
Вы пытались установить BOOST_MPL_LIMIT_VECTOR_SIZE на что-то большее? По умолчанию 20.   -  person jmetcalfe    schedule 03.02.2013
comment
(вам также, вероятно, понадобится BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS)   -  person jmetcalfe    schedule 03.02.2013
comment
На самом деле кажется, что это довольно сложно. luabind, кажется, довольно тесно связан с boost::tuples::tuple, у которого нет реального способа выйти за пределы ограничения по умолчанию (если бы он использовал кортежи boost fusion, я думаю, это было бы довольно просто). Это не очень удовлетворительное решение, но можете ли вы просто использовать функцию-оболочку с аргументами, объединенными в структуру?   -  person jmetcalfe    schedule 04.02.2013
comment
Спасибо за ответы! Я уже думал о разделении функции или использовании структуры, но было бы неплохо, если бы существовало решение для преодоления ограничения. Но в данном случае, боюсь, мне придется принять все как есть.   -  person mspoerr    schedule 04.02.2013
comment
@mspoerr Похоже на то. Я думаю, что было бы довольно легко изменить luabind, чтобы заставить это работать (при желании замените tuple на boost fusion tuple или std::tuple, где это возможно), но проект кажется мертвым, поэтому я сомневаюсь, что он действительно будет объединен.   -  person jmetcalfe    schedule 05.02.2013
comment
Рекомендации, которые я видел, никогда не выходят за пределы 3-5 параметров. Если у вас их 10, сгруппируйте их в структуры или разделите функцию.   -  person vonbrand    schedule 08.02.2013
comment
@jmetcalfe: я понимаю, что опаздываю на эту вечеринку, но я не думаю, что Luabind полностью мертв - если кто-то представит достойный патч, держу пари, Дэниел Валлин объединит его. Я сам так делал несколько лет назад, и тогда тоже было тихо. Но тишина не страшна — Luabind — это просто стабильный проект, в котором не нужно исправлять множество ошибок. :)   -  person John Zwinck    schedule 13.06.2013


Ответы (2)


Хотя это проблема, еще большая проблема в том, что у вас есть функция, которая принимает более 10 параметров!!

Что вам нужно сделать, так это посмотреть на упрощение интерфейса этой функции, возможно, путем извлечения параметров в структуру или класс (или словарь в Lua, я думаю).

person Sean    schedule 06.08.2013

Попробуйте использовать одну таблицу в качестве параметра.

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.
    }
}

Эта система также позволит вам иметь необязательные параметры и, таким образом, позволит вам вызывать эту функцию в различных вариантах без необходимости ее перезаписи.

person Mitesh Shah    schedule 16.08.2013