我更改了一些代码以将 a 转换std::set
为boost::ptr_set
. 但是,代码无法编译;问题是我假设插入的返回值与ptr_set
插入set
(a pair<myIter, bool>
)相同。在谷歌上一个小时后我发现了这个,结果发现ptr_set
插入的返回值似乎是一个布尔值。
是否有关于 ptr 容器和 std 容器之间差异的明确文档?我在boost网站上没有找到任何东西,但也许我只是愚蠢......
编辑
好的 - 让我感到困惑的是这段代码
t.insert(s.release(s.begin()));
p = t.insert(s.release(s.begin()));
在 gcc 的第一行报告没有错误,但operator=
在第二行报告没有匹配,所以我认为错误在返回类型中。但是,如果您注释掉第二行,则第一行将报告为错误(发布不返回迭代器)。我发布的链接加剧了我的困惑,其中 ptr_container 的作者指出“ptr_set<> 中的插入()返回布尔值”。但是,继续阅读链接,很明显当时代码还没有完成。谢谢克雷克。