我不确定我更加遭受文档错误还是头痛的折磨,所以...
我的目标是创建一个shared_ptr,它与另一个shared_ptr共享所有权,但引用对象的成员而不是整个对象。这是一个简单的示例,起点...
描述提到“构造一个shared_ptr与r共享所有权信息,但持有一个不相关且未受管理的指针ptr...例如在典型用例中,ptr是由r管理的对象的成员。”
那么...这个构造函数中的模板参数T是不是只是被意外地省略了呢?还是我漏了什么?实际上,Y看起来对我也是错误的,所以这个构造函数的描述是否正确?
我希望能够做的事情就像这样...
我的目标是创建一个shared_ptr,它与另一个shared_ptr共享所有权,但引用对象的成员而不是整个对象。这是一个简单的示例,起点...
struct s
{
int a, b;
};
shared_ptr<s> s1 (new s); // pointing to whole object
来自en.cppreference.com,shared_ptr的第8个构造函数是...
template< class Y >
shared_ptr( const shared_ptr<Y>& r, T *ptr );
描述提到“构造一个shared_ptr与r共享所有权信息,但持有一个不相关且未受管理的指针ptr...例如在典型用例中,ptr是由r管理的对象的成员。”
那么...这个构造函数中的模板参数T是不是只是被意外地省略了呢?还是我漏了什么?实际上,Y看起来对我也是错误的,所以这个构造函数的描述是否正确?
我希望能够做的事情就像这样...
shared_ptr<int> s2 (s1, &(s1.get ()->a));
s2
指向成员a
(一个int
),但与s1
共享整个对象的所有权。
这合理吗?
.get()
。 - atzz