gpt4 book ai didi

c++ - 在 boost::ptr_unordered_map 中存储指向 const 对象的指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:24 26 4
gpt4 key购买 nike

我似乎做不到boost::ptr_unordered_map<uint32_t, const Foo>工作 - 底层实现看起来像是将东西转换为 void* .

我是否只需要硬着头皮让我的方法包装对此的访问做一个 const_cast<Foo*>插入项目时,或者我在这里遗漏了什么?有什么方法可以存储指向 const 对象的指针 ( const Foo* )?

最佳答案

看起来这是不可能的。

解决方法是包装对 ptr_unordered_map 的访问.插入方法应该采用 const auto_ptr 然后执行 const_cast<Foo*>插入它。

如果您在删除元素时将 auto_type 交还给客户端代码,则需要从中解压指针并将其传输到 const auto_ptr 或类似的,以在不泄漏非 const 引用的情况下显式所有权转移。

这对我的用例来说已经足够了,因为我不需要公开任何迭代器行为 - 它是纯单元素插入/释放/查找。

关于c++ - 在 boost::ptr_unordered_map 中存储指向 const 对象的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963706/

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