namespace std::execution {
template<sender Sndr>
using tag_of_t = see below;
}
概要
Sender型SndrのSenderアルゴリズムタグ型を取得する。
説明用のsndrをdecltype((sndr))がSndr型となる式とする。型tag_of_t<Sndr>は下記の通り定義される。
-
次の宣言が適格であれば、
tag_of_t<Sndr>はdecltype(auto(tag))の別名となる。auto&& [tag, data, ...children] = sndr; -
そうでなければ、
tag_of_t<Sndr>は不適格となる。
Senderアルゴリズムタグ
実行制御ライブラリのSenderアルゴリズムから生成されたSendersndrは、構造化束縛によってSenderアルゴリズムタグtag、データdata、0個以上の子Senderパック...childrenの組へと分解される。
この仕様はSender変換が行われる可能性のあるSenderアルゴリズムに対してのみ要求されるものであり、ユーザ定義のSender型において構造化束縛による分解をサポートする必要はない。
例
#include <concepts>
#include <execution>
namespace ex = std::execution;
int main()
{
ex::sender auto sndr = ex::just(42);
using Tag = ex::tag_of_t<decltype(sndr)>;
static_assert(std::same_as<Tag, ex::just_t>);
}
出力
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??