Namespaces
Variants

std::weak_ptr<T>:: operator=

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
weak_ptr & operator = ( const weak_ptr & r ) noexcept ;
(1) (начиная с C++11)
template < class Y >
weak_ptr & operator = ( const weak_ptr < Y > & r ) noexcept ;
(2) (начиная с C++11)
template < class Y >
weak_ptr & operator = ( const shared_ptr < Y > & r ) noexcept ;
(3) (начиная с C++11)
weak_ptr & operator = ( weak_ptr && r ) noexcept ;
(4) (начиная с C++11)
template < class Y >
weak_ptr & operator = ( weak_ptr < Y > && r ) noexcept ;
(5) (начиная с C++11)

Заменяет управляемый объект на объект, которым управляет r . Объект разделяется с r . Если r не управляет никаким объектом, * this также не управляет никаким объектом.

1-3) Эквивалентно std:: weak_ptr < T > ( r ) . swap ( * this ) .
4,5) Эквивалентно std:: weak_ptr < T > ( std :: move ( r ) ) . swap ( * this ) .

Содержание

Параметры

r - умный указатель для совместного использования объекта

Возвращаемое значение

* this

Примечания

Реализация может соответствовать требованиям без создания временного weak_ptr объекта.

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 2315 C++11 move semantic was not enabled for weak_ptr enabled

Смотрите также

создает новый weak_ptr
(публичная функция-член)
обменивает управляемые объекты
(публичная функция-член)