我正在尝试用 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:错误:在 `(' 标记之前解析错误