Scroll to navigation

std::shared_ptr::operatorbool(3) C++ Standard Libary std::shared_ptr::operatorbool(3)

NAME

std::shared_ptr::operatorbool - std::shared_ptr::operatorbool

Synopsis


explicit operator bool() const noexcept;


Checks if *this stores a non-null pointer, i.e. whether get() != nullptr.

Parameters


(none)

Return value


true if *this stores a pointer, false otherwise.

Notes


An empty shared_ptr (where use_count() == 0) may store a non-null pointer accessible
by get(), e.g. if it were created using the aliasing constructor.

Example

// Run this code


#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);
}

Output:


ptr is not a valid pointer.
*ptr=7

See also


get returns the stored pointer
(public member function)

2022.07.31 http://cppreference.com