- condition_variable[meta header]
- std[meta namespace]
- condition_variable_any[meta class]
- function[meta id-type]
- cpp11[meta cpp]
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: 4.7.0 [mark verified]
- ICC: ??
- Visual C++: 2012 [mark verified], 2013 [mark verified]
- 2012までは、delete宣言に対応していないため、代わりにprivateで宣言のみ行う手法で代用されている。
- [LWG Issue 2092. Vague Wording for
condition_variable_any
]- C++11では
resource_unavailable_try_again
エラーの理由が「native handleの計算ができなかった」というものだった。しかし、このクラスはnative handleを持っていることがpublicインタフェースになっていないため、C++14で「制限により、非メモリリソースの初期化ができなかった」という表現に修正。
- C++11では