std::shared_ptr::operator bool
Материал из cppreference.com
< cpp | memory | shared ptr
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 функция-элемент) |