std::weak_ptr::weak_ptr
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
constexpr weak_ptr(); |
(1) | (C++11 起) |
weak_ptr( const weak_ptr& r ); |
(2) | (C++11 起) |
template< class Y > weak_ptr( const weak_ptr<Y>& r ); |
(2) | (C++11 起) |
template< class Y > weak_ptr( const std::shared_ptr<Y>& r ); |
(2) | (C++11 起) |
构建新的
1) weak_ptr
共享一个潜在的对象r
.原文:
Constructs new
weak_ptr
that potentially shares an object with r
.默认构造函数。构造空
2) weak_ptr
.原文:
Default constructor. Constructs empty
weak_ptr
.构建新的
weak_ptr
这股r
管理的对象。如果r
管理对象,*this管理也没有对象。模板化重载不参与重载决议,除非Y*
是隐式转换为T*
的 原文:
Constructs new
weak_ptr
which shares an object managed by r
. If r
manages no object, *this manages no object too. The templated overloads don't participate in the overload resolution unless Y*
is implicitly convertible to T*
. 目录 |
[编辑] 参数
r | - | 此std::shared_ptr将被视为一个std::weak_ptr或std::weak_ptr
原文: a std::shared_ptr or std::weak_ptr that will be viewed by this std::weak_ptr |
[编辑] 例外
[编辑] 示例
#include <memory> #include <iostream> struct Foo {}; int main() { std::weak_ptr<Foo> w_ptr; { auto ptr = std::make_shared<Foo>(); w_ptr = ptr; std::cout << "w_ptr.use_count() inside scope: " << w_ptr.use_count() << '\n'; } std::cout << "w_ptr.use_count() out of scope: " << w_ptr.use_count() << '\n'; }
输出:
w_ptr.use_count() inside scope: 1 w_ptr.use_count() out of scope: 0
[编辑] 另请参阅
分配 weak_ptr (公共成员函数) |