最終更新日時: 2026年02月08日 18時00分28秒 (JST)
yoh が更新

履歴 編集

function template
<execution>

# std::execution::make-sender(C++26)

    template<class Tag, class Data = see below, class... Child>
    constexpr auto make-sender(Tag tag, Data&& data, Child&&... child);

## 概要

`make-sender`は、Senderアルゴリズム動作仕様定義で用いられる説明専用の関数テンプレートである。

`sender`のモデルである説明専用クラステンプレート`basic-sender`のインスタンスを生成する。

- `Tag` : Senderアルゴリズムタグ（例：`just`, `then`）
- `Data` : Senderアルゴリズムに指定された追加の引数。複数個の引数は`product-type`型を用いて単一値として保持する。
- `Child` : 子Senderのリスト。Senderファクトリでは0個、Senderアダプタでは通常1個の子Senderを保持する。

## 適格要件

下記の式が全て`true`であること。

- `semiregular<Tag>`
- `movable-value<Data>`
- `(sender<Child> && ...)`
- 型`Sndr`を`basic-sender<Tag, decay_t<Data>, decay_t<Child>...>`としたとき、`dependent_sender<Sndr> || sender_in<Sndr>`

## 戻り値

転送された各引数により直接非リスト初期化された型`basic-sender<Tag, decay_t<Data>, decay_t<Child>...>`のprvalueを返す。

## 備考

テンプレートパラメータ`Data`のデフォルト引数は、`semiregular`のモデルである空のトリビアルにコピー可能な未規定なクラス型。

`sender_in<Sndr>`の評価結果が`get_completion_signatures<Sndr>()`から送出された例外の場合、処理系（標準ライブラリ実装者）はエラーメッセージにその例外に関する情報を含めることが推奨される。

## バージョン

### 言語

- C++26

## 関連項目

- `basic-sender`

## 参照

- P2999R3 Sender Algorithm Customization
- P2300R10 `std::execution`
- P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions
- LWG4456 Decay `Data` and `Child` in `make-sender`