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

std::shared_ptr::operator bool

Материал из cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, 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
 
 
explicit operator bool() const noexcept;

Проверяет, хранит ли *this ненулевой указатель, то есть get() != nullptr.

Содержание

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

(нет)

[править] Возвращаемое значение

true, если *this хранит указатель, false иначе.

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

Пустой shared_ptr (где use_count() == 0) может хранить ненулевой указатель, доступный с помощью get(), например если он был создан с помощью конструктора псевдонимов.

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

#include <iostream>
#include <memory>
 
void report(std::shared_ptr<int> ptr) 
{
    if (ptr) {
        std::cout << "*ptr=" << *ptr << "\n";
    } else {
        std::cout << "ptr не является допустимым указателем.\n";
    }
}
 
int main()
{
    std::shared_ptr<int> ptr;
    report(ptr);
 
    ptr = std::make_shared<int>(7);
    report(ptr);
}

Вывод:

ptr не является допустимым указателем.
*ptr=7

[править] Смотрите также

возвращает хранимый указатель
(public функция-элемент) [править]