首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::shared_ptr::operator bool

explicit operator bool() const;

检查*this存储非空指针,即是否为get() != nullptr...

参数

%280%29

返回值

true如果*this存储一个指针,false否则。

例外

noexcept规格:

noexcept

注记

空共享[医]PTR%28use_count() == 0%5月29日存储一个非空指针。get(),例如,如果它是使用别名构造函数创建的。

二次

代码语言:javascript
复制
#include <iostream>
#include <memory>
 
typedef std::shared_ptr<int> IntPtr;
 
void report(IntPtr ptr) 
{
    if (ptr) {
        std::cout << "*ptr=" << *ptr << "\n";
    } else {
        std::cout << "ptr is not a valid pointer.\n";
    }
}
 
int main()
{
    IntPtr ptr;
    report(ptr);
 
    ptr = IntPtr(new int(7));
    report(ptr);
}

二次

产出:

二次

代码语言:javascript
复制
ptr is not a valid pointer.
*ptr=7

二次

另见

get

returns the stored pointer (public member function)

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券