gpt4 book ai didi

c++ - Luabind:std::map 的 return_STL_iterator

转载 作者:搜寻专家 更新时间:2023-10-31 01:18:49 26 4
gpt4 key购买 nike

有什么方法可以将 STL 迭代器返回给 std::map (例如 std::map<const std::string, int>)?

示例类的 Luabind 定义:

class_<SomeClass>( "SomeClass" )
.property( "items", &SomeClass::GetItems, return_stl_iterator )

GetItems()返回对 std::map 的常量引用容器。

在Lua中这样访问时:

for item in some_class.items do
...
end

Luabind 抛出一个 std::runtime_error 说“尝试使用未注册的类”。正在遍历 std::map不可能吗? (文档说所有具有 begin()end() 的容器都可以工作...)

最佳答案

浏览源代码后,我发现 Luabind 的 return_STL_iterator 策略只支持直接引用所需数据类型的迭代器。不支持关联容器的迭代器(永远不会访问 firstsecond)。

关于c++ - Luabind:std::map 的 return_STL_iterator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com