std::weak_ptr<T>::operator=
Материал из cppreference.com
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++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 2315 | C++11 | семантика перемещения не была доступна для weak_ptr
|
доступна |
[править] Смотрите также
создаёт новый weak_ptr (public функция-элемент) | |
меняет местами управляемые объекты (public функция-элемент) |