std::shared_ptr<T>::operator bool
explicit operator bool() const noexcept; | (constexpr since C++26) |
Проверяет, хранит ли *this ненулевой указатель.
Возвращаемое значение
get() != nullptr
Примечания
Пустой 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
См. также
| возвращает сохранённый указатель (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/shared_ptr/operator_bool