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

std::weak_ptr<T>::expired

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
std::weak_ptr
Функции-элементы
Модификаторы
Наблюдатели
Функции, не являющиеся элементами
Вспомогательные классы
Правила вывода(C++17)
 
<tbody> </tbody>
bool expired() const noexcept;
(начиная с C++11)

Эквивалентно use_count() == 0. Деструктор для управляемого объекта, возможно, ещё не был вызван, но уничтожение этого объекта неизбежно (или, возможно, уже произошло).

Параметры

(нет)

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

true, если управляемый объект уже удалён, false иначе.

Примечание

Эта функция по своей сути эффективна, если управляемый объект совместно используется потоками. В частности, результат false может устареть до того, как его можно будет использовать. Результат true надёжен.

Пример

Демонстрирует, как expired используется для проверки достоверности указателя.

#include <iostream>
#include <memory>

std::weak_ptr<int> gw;

void f()
{
    if (!gw.expired())
        std::cout << "gw действителен\n";
    else
        std::cout << "gw не действителен\n";
}

int main()
{
    {
        auto sp = std::make_shared<int>(42);
        gw = sp;

        f();
    }

    f();
}

Вывод:

gw действителен
gw не действителен

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

создаёт shared_ptr, который управляет объектом, на который ссылается weak_ptr
(public функция-элемент) [править]
возвращает количество объектов shared_ptr, которые управляют объектом
(public функция-элемент) [править]