tuple-like , pair-like
|
template
<
class
T
>
concept tuple - like = /* 下記参照 */ ; |
(1) |
(C++23以降)
( 説明専用* ) |
|
template
<
class
T
>
concept pair
-
like
=
|
(2) |
(C++23以降)
( 説明専用* ) |
T
がコンセプト
tuple-like
をモデルし満たすのは、
std::
remove_cvref_t
<
T
>
が以下のいずれかの特殊化である場合である:
| (C++26以降) |
- std::pair 、
- std::tuple 、または
- std::ranges::subrange 。
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
型の共通参照型を決定する
(クラステンプレートの特殊化) |
|
|
(C++23)
|
tuple
と
tuple-like
型の共通型を決定する
(クラステンプレートの特殊化) |
|
(C++11)
|
任意の数のtupleを連結して
tuple
を作成する
(関数テンプレート) |
|
(C++17)
|
引数のtupleで関数を呼び出す
(関数テンプレート) |
|
(C++17)
|
引数の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
を生成する
(クラステンプレート) (範囲アダプタオブジェクト) |