namespace std {
struct nostopstate_t {
explicit nostopstate_t() = default;
};
inline constexpr nostopstate_t nostopstate{};
}
概要
nostopstate_t
型とその値nostopstate
は、停止状態を扱わないstop_source
を構築するためのタグである。
stop_source
クラスのコンストラクタにnostopstate
を渡すと、そのstop_source
は停止要求を扱うためのリソースを確保せず、停止要求を作成したりstop_token
クラスと停止状態を共有したりできない状態になる。
例
#include <cassert>
#include <stop_token>
int main()
{
std::stop_source ss1;
std::stop_source ss2(std::nostopstate);
assert(ss1.stop_possible() == true);
assert(ss2.stop_possible() == false);
std::stop_token st1 = ss1.get_token();
std::stop_token st2 = ss2.get_token();
assert(st1.stop_possible() == true);
assert(st2.stop_possible() == false);
}
xxxxxxxxxx
#include <cassert>
#include <stop_token>
int main()
{
std::stop_source ss1;
std::stop_source ss2(std::nostopstate);
assert(ss1.stop_possible() == true);
assert(ss2.stop_possible() == false);
std::stop_token st1 = ss1.get_token();
std::stop_token st2 = ss2.get_token();
assert(st1.stop_possible() == true);
assert(st2.stop_possible() == false);
}
出力
バージョン
言語
- C++20
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??