最終更新日時: 2025年07月09日 17時52分14秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<thread>

# std::jthread::request_stop(C++20)

    bool request_stop() noexcept;

## 概要

スレッドに対する停止要求を作成する。

この関数を実行することで、対象のスレッドがもつ`std::stop_token`型オブジェクトの`stop_requested()`メンバ関数が`true`を返すようになる。

## 効果

メンバ変数として保持している`std::stop_source`型オブジェクト`ssource`があるとして、以下と等価：

    return ssource.request_stop();

## 例外

送出しない。

## 例

    #include <iostream>
    #include <thread>

    int main()
    {
      std::jthread jt {
        [](std::stop_token stoken) {
          while (!stoken.stop_requested()) {
            // 停止要求がくるまで処理を継続する…
          }
          std::cout << "exit jt thread" << std::endl;
        }
      };

      // 停止要求を作成する
      jt.request_stop();
      jt.join();
    }

### 出力

    exit jt thread

## バージョン

### 言語

- C++20

### 処理系

- Clang:
- GCC: 10.2.0 ✅
- Visual C++: ??