std::experimental::ranges:: tagged
|
ヘッダーで定義
<experimental/ranges/utility>
|
||
|
template
<
class
Base,
TagSpecifier
...
Tags
>
requires sizeof...
(
Tags
)
<=
std::
tuple_size
<
Base
>
::
value
|
(ranges TS) | |
クラステンプレート
tagged
は、タプルライクなクラス型
Base
を拡張し、タグ指定子
Tags...
によって指定された名前付きアクセサのセットを追加します。タグは順番に適用されます:
Tags...
内のi番目のタグ指定子は、タプルのi番目の要素に対応します。
Tags...
内のタグ指定子は一意でなければなりません。そうでない場合、動作は未定義です。
tagged
のインスタンスを
Base
以外の基底クラスへのポインタを通して削除することはできません。
目次 |
、
、
メンバー関数
tagged
オブジェクトを構築する
(public member function) |
|
tagged
オブジェクトを代入する
(public member function) |
|
2つの
tagged
オブジェクトの内容を交換する
(public member function) |
名前付き要素アクセサ
Tags...
内の
N
番目のタグ指定子に対応する要素名が
name
である場合、
tagged
は以下のように
name
という名前のアクセサを提供します:
constexpr decltype(auto) name() & { return std::get<N>(*this); } constexpr decltype(auto) name() const & { return std::get<N>(*this); } constexpr decltype(auto) name() && { return std::get<N>(std::move(*this)); }
非メンバー関数
tagged
オブジェクトの
swap
を特殊化する
(関数) |
タプルライクアクセス
tagged
のサイズを取得する
(クラステンプレートの特殊化) |
|
tagged
の要素の型を取得する
(クラステンプレートの特殊化) |
関連項目
|
型がタグ指定子であることを指定する
(コンセプト) |
|
|
タグ付き
std::pair
のエイリアステンプレート
(エイリアステンプレート) |
|
tagged_pair
を作成するための便利関数
(関数テンプレート) |
|
|
タグ付き
std::tuple
のエイリアステンプレート
(エイリアステンプレート) |
|
tagged_tuple
を作成するための便利関数
(関数テンプレート) |
|
|
ranges::tagged
で使用するためのタグ指定子
(クラス) |