最終更新日時(UTC):
が更新

履歴 編集

type-alias
<execution>

std::execution::tag_of_t(C++26)

namespace std::execution {
  template<sender Sndr>
  using tag_of_t = see below;
}

概要

Sender型SndrのSenderアルゴリズムタグ型を取得する。

説明用のsndrdecltype((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

処理系

関連項目

参照