タプルライク、ペアライク
From cppreference.com
template< class T > concept tuple-like = /* 以下参照 */; |
(1) | (C++23から) (説明用*) |
template< class T > concept pair-like = |
(2) | (C++23から) (説明用*) |
2)
pair-likeオブジェクトは、要素数がちょうど2個のtuple-likeオブジェクトです。[編集] 注記
tuple-like型はタプルプロトコルを実装します。つまり、そのような型はstd::get、std::tuple_element、およびstd::tuple_sizeとともに使用できます。
tuple-like型の要素は、構造化束縛で束縛できます。
[編集] 関連項目
tuple-likeおよびpair-likeは、以下の標準ライブラリコンポーネントで使用されます。
新しい tuple を構築する(public メンバ関数) | |
ある tuple の内容を別の tuple に代入する(public メンバ関数) | |
| (C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20) |
タプル内の値を辞書順に比較する (関数テンプレート) |
tuple と tuple-like 型の共通参照型を決定する(クラステンプレート特殊化) | |
| (C++23) |
tuple と tuple-like 型の共通型を決定する(クラステンプレート特殊化) |
| (C++11) |
任意の数のタプルを連結して tuple を生成する(関数テンプレート) |
| (C++17) |
引数のタプルを使って関数を呼び出す (関数テンプレート) |
| (C++17) |
引数のタプルを使ってオブジェクトを構築する (関数テンプレート) |
新しいpairを構築する( std::pair<T1,T2> の公開メンバ関数) | |
| 内容を代入する ( std::pair<T1,T2>のパブリックメンバ関数) | |
subrangeをpair-like型に変換します。( std::ranges::subrange<I,S,K>のパブリックメンバ関数) | |
tuple-like値のシーケンスであるviewと数値Nを受け取り、各タプルのN番目の要素のviewを生成します。(クラステンプレート) (rangeアダプタオブジェクト) |