Namespaces
Variants

std::shared_ptr<T>:: operator bool

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
explicit operator bool ( ) const noexcept ;
**Примечание:** Весь код внутри тегов ` ` сохранен без изменений, так как содержит C++ специфичные термины и синтаксис, которые не подлежат переводу согласно требованиям. HTML структура и атрибуты также сохранены в оригинальном виде.

Проверяет, хранит ли * 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 is not a valid pointer.\n";
}
int main()
{
    std::shared_ptr<int> ptr;
    report(ptr);
    ptr = std::make_shared<int>(7);
    report(ptr);
}

Вывод:

ptr is not a valid pointer.
*ptr=7

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

возвращает сохранённый указатель
(публичная функция-член)