最終更新日時: 2026年04月23日 21時23分31秒 (JST)
yoh が更新

履歴 編集

function
<execution>

# std::execution::run_loop::get_scheduler(C++26)

    run-loop-scheduler get_scheduler() noexcept;

## 概要

`run_loop`上で実行するSchedulerを返す。

## 戻り値

`run_loop`インスタンス上で作業をスケジュールする`run-loop-scheduler`インスタンスを返す。

## 例外

投げない

## 例

    #include <cassert>
    #include <concepts>
    #include <execution>
    namespace ex = std::execution;

    int main()
    {
      ex::run_loop loop;
      ex::scheduler auto sch = loop.get_scheduler();

      // スケジュールSenderを作成
      ex::sender auto sndr = ex::schedule(sch);

      // スケジュールSenderの完了シグネチャ集合を確認
      using Sigs = ex::completion_signatures_of_t<decltype(sndr)>;
      static_assert(std::same_as<Sigs,
        ex::completion_signatures<ex::set_value_t(),
                                  ex::set_error_t(std::exception_ptr),
                                  ex::set_stopped_t()>>);

      // スケジュールSender属性の値完了Schedulerを確認
      auto compl_sch = ex::get_completion_scheduler<ex::set_value_t>(ex::get_env(sndr));
      assert(compl_sch == sch);
    }

### 出力

## バージョン

### 言語

- C++26

### 処理系

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

## 関連項目

- `run-loop-scheduler`
- `run-loop-sender`
- `execution::schedule`

## 参照

- P2300R10 `std::execution`
- LWG4476. `run_loop` should not have a `set_error` completion