有什么方法可以将 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::map
s 是不可能的吗?(文档说所有容器都有begin()
并且end()
可以工作......)