std::weak_ptr::weak_ptr

来自cppreference.com
< cpp‎ | memory‎ | weak ptr

 
 
 
 
 
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 起)
构建新的weak_ptr共享一个潜在的对象r.
原文:
Constructs new weak_ptr that potentially shares an object with r.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
1)
默认构造函数。构造空weak_ptr.
原文:
Default constructor. Constructs empty weak_ptr.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
构建新的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_ptrstd::weak_ptr
原文:
a std::shared_ptr or std::weak_ptr that will be viewed by this std::weak_ptr
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

noexcept 规定:  
noexcept
  

[编辑] 示例

#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赋值
(公开成员函数) [编辑]