最終更新日時: 2025年07月14日 23時04分00秒 (JST)
Koichi Murase が更新

履歴 編集

function template
<execution>

# std::execution::apply_sender(C++26)

    namespace std::execution {
      template<class Domain, class Tag, sender Sndr, class... Args>
      constexpr decltype(auto) apply_sender(Domain dom, Tag, Sndr&& sndr, Args&&... args)
        noexcept(see below);
    }

## 概要

実行ドメインに応じてSenderアルゴリズムを適用する。 Senderアルゴリズム動作のカスタマイゼーションポイントとして機能する。

- 定義されていれば、`dom.apply_sender`メンバ関数に適用動作を委譲する。
- そうでなければ、デフォルト実行ドメイン`apply_sender`に適用動作を委譲する。

## テンプレートパラメータ制約

説明用の式`e`を次の通りとしたとき、式`e`が適格であること。

- 適格であるならば、式`dom.apply_sender(Tag(), std::forward<Sndr>(sndr), std::forward<Args>(args)...)`
- そうでなければ、`default_domain().apply_sender(Tag(), std::forward<Sndr>(sndr), std::forward<Args>(args)...)`

## 戻り値

`e`を返す。

## 例外

`noexcept(e) == true`ならば、例外を投げない。 そうでなければ、式`e`から送出される例外。

## バージョン

### 言語

- C++26

### 処理系

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

## 関連項目

- `default_domain::apply_sender`

## 参照

- P2999R3 Sender Algorithm Customization
- P2300R10 `std::execution`