最終更新日時:
が更新

履歴 編集

function
<condition_variable>

std::condition_variable_any::コンストラクタ(C++11)

condition_variable_any();                                       // (1)
condition_variable_any(const condition_variable_any&) = delete; // (2)

概要

  • (1) : デフォルトコンストラクタ。condition_variable_anyオブジェクトの初期化を行う
  • (2) : コピーコンストラクタ。コピー不可。これによってムーブも不可。

例外

この関数は、bad_alloc例外オブジェクト、もしくは以下のerror conditionを持つsystem_error例外オブジェクトを送出する可能性がある:

  • resource_unavailable_try_again : 制限により、非メモリリソースの初期化ができなかった
  • operation_not_permitted : スレッドがこの操作を実行する権限を持っていない

#include <condition_variable>

int main()
{
  std::condition_variable_any cond;
}

出力

バージョン

言語

  • C++11

処理系

  • Clang: ??
  • GCC:
  • GCC, C++11 mode: 4.7.0
  • ICC: ??
  • Visual C++: 11.0, 12.0
    • Visual C++ 11.0までは、delete宣言に対応していないため、代わりにprivateで宣言のみ行う手法で代用されている。

参照

  • [LWG Issue 2092. Vague Wording for condition_variable_any]
    • C++11ではresource_unavailable_try_againエラーの理由が「native handleの計算ができなかった」というものだった。しかし、このクラスはnative handleを持っていることがpublicインタフェースになっていないため、C++14で「制限により、非メモリリソースの初期化ができなかった」という表現に修正。