我正在尝试用 STL Queue 类替换用 Lua 编写的队列类的现有实现。我不确定为什么会失败,或者如何解决它。下面是一些显示相同行为的示例代码以及错误输出。提前致谢!
#include <luabind/luabind.hpp> #include <队列> 结构 XYZ_T { 短 x, y, z; }; typedef std::queue<XYZ_T> XYZ_QUEUE_T; extern "C" int init(lua_State *L) { 使用命名空间 luabind; 打开(L); 模组(L) [ class_<XZY_T>("XYZ_T") .def(构造函数<>()) .def_readwrite("x", &XYZ_T::x) .def_readwrite("y", &XYZ_T::y) .def_readwrite("z", &XYZ_T::z), class_<XYZ_QUEUE_T>("XYZ_QUEUE_T") .def(构造函数<>()) .def("推", &XYZ_QUEUE_T::推) .def("pop", &XYZ_QUEUE_T::pop) .def("前", &XYZ_QUEUE_T::front) .def("后退", &XYZ_QUEUE_T::back) .def("空", &XYZ_QUEUE_T::empty) .def("大小", &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:在函数“int init(lua_State*)”中: test_luabind.cpp:27:错误:没有匹配的函数调用` luabind::class_<XYZ_QUEUE_T, luabind::detail::unspecified, luabind::detail::unspecified, luabind::detail::unspecified>::def(const char[6], <未知类型>)' test_luabind.cpp:32:错误:在 `(' 标记之前解析错误