◐ Shell
clean mode source ↗

std::shared_ptr<T>::operator bool - cppreference.com

提供: cppreference.com

<tbody> </tbody>

explicit operator bool() const noexcept;

*this が非ヌルなポインタを格納している、すなわち get() != nullptr かどうかを調べます。

引数

(なし)

戻り値

*this がポインタを格納していれば true、そうでなければ false

ノート

空 (use_count() == 0) の shared_ptr が get() でアクセス可能な非ヌルのポインタを格納している場合があります。 例えば、エイリアシングコンストラクタを使用して、そのような shared_ptr を作ることができます。

#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

関連項目