Я пытаюсь заменить существующую реализацию класса очереди, написанного на Lua, на класс очереди STL.Я не уверен, почему это не удается, или как подойти, чтобы это исправить.Ниже приведен пример кода, который демонстрирует такое же поведение, наряду с выводом ошибки.Заранее спасибо!
#include
#include
struct XYZ_T
{
short x, y, z;
};
typedef std::queue XYZ_QUEUE_T;
extern "C" int init(lua_State *L)
{
using namespace luabind;
open(L);
module(L)
[
class_("XYZ_T")
.def(constructor<>())
.def_readwrite("x", &XYZ_T::x)
.def_readwrite("y", &XYZ_T::y)
.def_readwrite("z", &XYZ_T::z),
class_("XYZ_QUEUE_T")
.def(constructor<>())
.def("push", &XYZ_QUEUE_T::push)
.def("pop", &XYZ_QUEUE_T::pop)
.def("front", &XYZ_QUEUE_T::front)
.def("back", &XYZ_QUEUE_T::back)
.def("empty", &XYZ_QUEUE_T::empty)
.def("size", &XYZ_QUEUE_T::size)
];
}
И вывод gcc:
g++ -o test_luabind.os -c -fPIC -Iinclude -I$VALID_INCLUDE_DIR /packages/build_env/include test_luabind.cpp
test_luabind.cpp: In function `int init(lua_State*)':
test_luabind.cpp:27: error: no matching function for call to `
luabind::class_<XYZ_QUEUE_T, luabind::detail::unspecified,
luabind::detail::unspecified, luabind::detail::unspecified>::def(const
char[6], <unknown type>)'
test_luabind.cpp:32: error: parse error before `(' token