名前空間
変種
操作

タプルライクペアライク

From cppreference.com
< cpp‎ | utility‎ | tuple
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、RTTI)
ライブラリ機能検査マクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
 
template< class T >
concept tuple-like = /* 以下参照 */;
(1) (C++23から)
(説明用*)
template< class T >

concept pair-like =

    tuple-like<T> && std::tuple_size_v<std::remove_cvref_t<T>> == 2;
(2) (C++23から)
(説明用*)
1)Tがコンセプトtuple-likeをモデル化および満たすのは、std::remove_cvref_t<T>が以下のような特殊化である場合です。
(C++26以降)
2) pair-likeオブジェクトは、要素数がちょうど2個のtuple-likeオブジェクトです。

[編集] 注記

tuple-like型はタプルプロトコルを実装します。つまり、そのような型はstd::getstd::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)
タプル内の値を辞書順に比較する
(関数テンプレート) [編集]
tupletuple-like 型の共通参照型を決定する
(クラステンプレート特殊化) [編集]
tupletuple-like 型の共通型を決定する
(クラステンプレート特殊化) [編集]
(C++11)
任意の数のタプルを連結して tuple を生成する
(関数テンプレート) [編集]
(C++17)
引数のタプルを使って関数を呼び出す
(関数テンプレート) [編集]
引数のタプルを使ってオブジェクトを構築する
(関数テンプレート) [編集]
新しいpairを構築する
(std::pair<T1,T2> の公開メンバ関数) [編集]
内容を代入する
(std::pair<T1,T2>のパブリックメンバ関数) [編集]
subrangepair-like型に変換します。
(std::ranges::subrange<I,S,K>のパブリックメンバ関数) [編集]
tuple-like値のシーケンスであるviewと数値Nを受け取り、各タプルのN番目の要素のviewを生成します。
(クラステンプレート) (rangeアダプタオブジェクト)[編集]
English 日本語 中文(简体) 中文(繁體)