有什么方法可以将 STL 迭代器返回到std::map(例如std::map<const std::string, int>)?
示例类的 Luabind 定义:
class_<SomeClass>( "SomeClass" )
.property( "items", &SomeClass::GetItems, return_stl_iterator )
GetItems()返回对std::map容器的 const 引用。
像这样在 Lua 中访问它时:
for item in some_class.items do
...
end
Luabind 抛出一个 std::runtime_error 说"尝试使用未注册的类"。迭代std::maps 是不可能的吗?(文档说所有容器都有begin()并且end()可以工作......)