std::weak_ptr<T>:: expired
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
|
weak_ptr::expired
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Non-member functions | ||||
| Helper classes | ||||
|
(C++20)
|
||||
| Deduction guides (C++17) |
|
bool
expired
(
)
const
noexcept
;
|
(начиная с C++11) | |
Эквивалентно use_count ( ) == 0 . Деструктор управляемого объекта, возможно, еще не был вызван, но разрушение данного объекта неизбежно (или могло уже произойти).
Содержание |
Параметры
(нет)
Возвращаемое значение
true если управляемый объект уже был удален, false в противном случае.
Примечания
Если управляемый объект используется совместно несколькими потоками, это имеет смысл только тогда, когда
expired()
возвращает true.
Пример
Демонстрирует, как
expired
используется для проверки валидности указателя.
#include <iostream> #include <memory> std::weak_ptr<int> gw; void f() { if (!gw.expired()) std::cout << "gw is valid\n"; else std::cout << "gw is expired\n"; } int main() { { auto sp = std::make_shared<int>(42); gw = sp; f(); } f(); }
Вывод:
gw is valid gw is expired
Смотрите также
создает
shared_ptr
, который управляет ссылаемым объектом
(публичная функция-член) |
|
возвращает количество объектов
shared_ptr
, которые управляют объектом
(публичная функция-член) |