最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

class
<stop_token>

# std::nostopstate(C++20)

    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);
    }

### 出力

## バージョン

### 言語

- C++20

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??