# std::shared_ptr<T>::operator bool

< cpp‎ | memory‎ | shared ptr

explicit operator bool() const noexcept; |  |

检查 *this 是否存储非空指针，即是否有 get() != nullptr 。

### 参数

（无）

### 返回值

若 *this 存储非空指针则为 true ，否则为 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

### 参阅

get | 返回存储的指针 (公开成员函数)