std::shared_ptr<T>::operator bool
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 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/w/cpp/memory/shared_ptr/operator_bool