Пространства имён
Варианты
Действия

std::weak_ptr::weak_ptr

Материал из cppreference.com
< cpp‎ | memory‎ | weak ptr

 
 
 
 
std::weak_ptr
Функции-члены
weak_ptr::weak_ptr
weak_ptr::~weak_ptr
weak_ptr::operator=
Модификаторы
weak_ptr::reset
weak_ptr::swap
Наблюдатели
weak_ptr::use_count
weak_ptr::expired
weak_ptr::lock
weak_ptr::owner_before
Функции, не являющиеся членами
std::swap
 
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.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
1)
Конструктор по умолчанию. Создает пустую weak_ptr.
Оригинал:
Default constructor. Constructs empty weak_ptr.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
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*.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Параметры

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
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Исключения

noexcept-спецификация:  
noexcept
  (начиная с C++11)

[править] Пример

#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
Оригинал:
assigns the weak_ptr
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]