std::experimental::ranges::tagged_pair
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/utility> |
||
| template< TaggedType T1, TaggedType T2 > using tagged_pair = /* 以下を参照 */; |
(ranges TS) | |
ranges::tagged が std::pair をラップする際の、便宜的なエイリアステンプレートです。
TaggedType は、S が TagSpecifier で T が要素の型であるような関数型 S(T) です。
tagged_pair<S1(T1), S2(T2)> は、ranges::tagged<std::pair<T1, T2>, S1, S2> のエイリアスです。
[編集] 注釈
関数型がタグ指定子と対応する要素型を「連結」するために使用されるため、通常のパラメータ型調整が適用されます。特に、トップレベルの cv 修飾子は削除され、配列型はポインタに調整されます: tagged_pair<tag::in(const int* const), tag::out(int[])> は ranges::tagged<std::pair<const int*, int*>, tag::in, tag::out> となります。
[編集] 関連項目
| 型がタグ指定子とその要素型を表すことを指定します (コンセプト) | |
| 名前付きアクセサでタプルライクな型を拡張します (クラステンプレート) | |
tagged_pair を作成するための便利な関数(関数テンプレート) | |
| タグ付き std::tuple のエイリアステンプレート。 (alias template) | |
tagged_tuple を作成するための便利な関数。(function template) | |
| ranges::tagged と共に使用するタグ指定子。 (class) |