最終更新日時: 2026年06月08日 00時58分39秒 (JST)
yoh が更新

履歴 編集

class
<execution>

# std::execution::run_loop::run-loop-sender(C++26)

    class run-loop-sender;  // exposition only

## 概要

`run-loop-sender`は、`get_scheduler`メンバ関数が返す`run-loop-scheduler`動作仕様の説明で利用される説明専用のクラスである。

## クラス仕様

- `run-loop-sender`型は`sender`のモデルである。
- `E`を環境型として、`completion_signatures_of_t<run-loop-sender, E>`は下記の通り。
  - `unstoppable_token<stop_token_of_t<E>>`が`true`のとき、`completion_signatures<set_value_t()>`
  - そうでなければ、`completion_signatures<set_value_t(), set_stopped_t()>`
- `run-loop-sender`インスタンスは、関連付けられた`run_loop`インスタンスの生存期間(lifetime)終了まで有効。
- 説明用の式`sndr`の型を`run-loop-sender`、`CS`が上記`completion_signatures`の特殊化であるとき`receiver-of<decltype((rcvr)), CS>`が`true`となる式`rcvr`としたとき、
  - 式`connect(sndr, rcvr)`の型は`run-loop-opstate<decay_t<decltype((rcvr))>>`であり、潜在的な例外送出(potentially-throwing)は式`(void(sndr), auto(rcvr))`に従う。
  - 完了タグ`C`を`set_value_t`または`set_stopped_t`としたとき、式`get_completion_scheduler<C>(get_env(sndr))`の潜在的な例外送出は`sndr`に従う。式の型は`run-loop-scheduler`となり、そのインスタンスは同一`sndr`から取得された場合に等しくなる。

## バージョン

### 言語

- C++26

## 関連項目

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

## 参照

- P2300R10 `std::execution`
- P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions
- P3941R4 Scheduler Affinity
- P4159R0 Make `sender_in` and `receiver_of` exposition-only