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++: ??