◐ Shell
clean mode source ↗

std::shared_ptr::operator bool — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

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 функция-элемент) [править]