gpt4 book ai didi

c++ - 从 boost::shared_ptr 转换为 boost::shared_ptr

转载 作者:太空狗 更新时间:2023-10-29 23:06:43 24 4
gpt4 key购买 nike

class T
{};

class UseT
{
public:
//...
boost::shared_ptr<const T> getT() const
{
return m_t;
}
private:
boost::shared_ptr<T> m_t;
};

问题> 我们从 boost::shared_ptr<T> 转换时使用的规则是什么?至 boost::shared_ptr<const T>

最佳答案

shared_ptr<T>有一个转换构造函数,允许它从 shared_ptr<U> 构造从 U* 转换是否有效至 T* ,反射(reflect)了内置指针的工作方式。

template<typename U>
shared_ptr(const shared_ptr<U>& other);

(对于 std::shared_ptr,只有在 U* 可转换为 T* 时才能调用构造函数,但对于 boost::shared_ptr,我不确定它是否检查了这一点,或者您只是收到无效转换的编译器错误.)

T*可以转换为const T* ,构造函数允许您创建一个 shared_ptr<const T>来自shared_ptr<T> .

关于c++ - 从 boost::shared_ptr<T> 转换为 boost::shared_ptr<const T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14880264/

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