Namespaces
Variants

tuple-like , pair-like

From cppreference.net
Utilities library
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 オブジェクトは、 tuple-like オブジェクトのうち、正確に2つの要素を持つものです。

注記

tuple-like 型は タプルプロトコル を実装します。つまり、そのような型は std::get std::tuple_element および std::tuple_size と共に使用できます。

tuple-like 型の要素は 構造化バインディング でバインドできます。

関連項目

tuple-like および pair-like は、以下の標準ライブラリコンポーネントで使用されます:

新しい tuple を構築する
(公開メンバ関数)
ある tuple の内容を別の tuple に代入する
(公開メンバ関数)
(C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20で削除) (C++20)
tuple内の値を辞書順で比較する
(関数テンプレート)
tuple tuple-like 型の共通参照型を決定する
(クラステンプレートの特殊化)
tuple tuple-like 型の共通型を決定する
(クラステンプレートの特殊化)
(C++11)
任意の数のtupleを連結して tuple を作成する
(関数テンプレート)
(C++17)
引数のtupleで関数を呼び出す
(関数テンプレート)
引数のtupleでオブジェクトを構築する
(関数テンプレート)
新しい pair を構築する
( std::pair<T1,T2> の公開メンバ関数)
内容を代入する
( std::pair<T1,T2> の公開メンバ関数)
subrange pair-like 型に変換する
( std::ranges::subrange<I,S,K> の公開メンバ関数)
tuple-like 値からなる view と数値Nを受け取り、各tupleのN th 要素の view を生成する
(クラステンプレート) (範囲アダプタオブジェクト)