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
参阅
返回存储的指针 (公开成员函数) |