boost - const shared_ptr到shared_ptr

标签 boost shared-ptr

如何将指向常量对象的shared_ptr转换为指向非常量对象的shared_ptr。
我正在尝试执行以下操作:

boost::shared_ptr<const A> Ckk(new A(4));

boost::shared_ptr<A> kk=const_cast< boost::shared_ptr<A> > Ckk;


但这是行不通的。

最佳答案

'boost :: const_pointer_cast'可以满足您的要求,但是答案的后半部分是您可能不应该使用它。在您似乎需要舍弃变量的const属性的情况下,有99%的时间表示您存在设计缺陷。 const有时不仅仅只是装饰橱窗,将其抛弃可能会导致意外的错误。

如果不知道您情况的更多细节,就无法确定。但是不提这个事实,就没有完整的关于const-cast的讨论。

关于boost - const shared_ptr到shared_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913238/

相关文章:

c++ - boost::asio::spawn 是做什么的?

c++ - boost::variant 是火箭科学吗? (因此我应该避免它用于简单的问题吗?)

python - Boost.Python boost::shared_ptr 没有通过值转换器找到 python

c++ - 绑定(bind)两个参数

c++ - 返回指向 const 对象的 const 共享指针的 const vector

C++:vector 中的 shared_ptr 没有更新原始的 shared_ptr

c++ - boost Asio 套接字问题

c++ - 循环文件写入的磁盘 IO 问题

Windows 的 C++ 互斥量

c++11 - 如何解决在此范围内未声明的 “' shared_ptr错误?