std::shared_ptr<T>::operator bool
来自cppreference.com
< cpp | memory | shared ptr
工具库
动态内存管理
|
std::shared_ptr
成员函数 | ||||
修改器 | ||||
观察器 | ||||
(C++17)
|
||||
(C++20
前)
|
||||
shared_ptr::operator
bool
|
||||
非成员函数 | ||||
(C++20
前)(C++20
前)(C++20
前)(C++20
前)(C++20
前)(C++20)
|
||||
函数(C++20
中弃用)
|
||||
辅助类 | ||||
(C++20)
|
||||
推导指引(C++17) |
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
参阅
返回存储的指针 (公开成员函数) |