Skip to content

Latest commit

 

History

History
60 lines (46 loc) · 1.23 KB

op_bool.md

File metadata and controls

60 lines (46 loc) · 1.23 KB

operator bool

  • memory[meta header]
  • std[meta namespace]
  • shared_ptr[meta class]
  • function[meta id-type]
  • cpp11[meta cpp]
explicit operator bool() const noexcept;

概要

有効なリソースを所有しているかを判定する。

戻り値

get() != nullptr
  • get()[link get.md]

#include <iostream>
#include <memory>

int main()
{
  std::shared_ptr<int> p(new int(3));

  if (p) {
    std::cout << "p has resource" << std::endl;
  }
  else {
    std::cout << "p doesn't have resource" << std::endl;
  }
}

出力

p has resource

バージョン

言語

  • C++11

処理系

  • GCC: 4.4.7 [mark verified]
  • Clang: 3.0 [mark verified]
  • ICC: ?
  • Visual C++: 2008 (TR1) [mark verified], 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]
    • 2012までは、コンパイラがexplicit operator boolに対応していないため、不透明な型へのポインタ型への変換演算子関数として実装されている。

参照