std::basic_common_reference<tuple-like>
From cppreference.com
| ヘッダ <tuple> で定義 |
||
| template< tuple-like TTuple, tuple-like UTuple, template<class> class TQual, template<class> class UQual > |
(C++23から) | |
2つのtuple-like型の共通参照型は、両方の型の対応する要素型ペアの共通参照型からなるstd::tupleです。ここで、タプルライク型に対するcv修飾子と参照修飾子は、それらの要素型に適用されます。
以下を考えます。
-
TTypesは、整数iについて、[0,std::tuple_size_v<TTuple>)の範囲のすべてのstd::tuple_element_t<i, TTuple>のシーケンスによって形成されるパック、および -
UTypesは、整数iについて、[0,std::tuple_size_v<UTuple>)の範囲のすべてのstd::tuple_element_t<i, UTuple>のシーケンスによって形成されるパックです。
以下の制約を満たす必要があります。
-
TTupleまたはUTupleはstd::tupleの特殊化である。 - std::is_same_v<TTuple, std::decay_t<TTuple>> は true である。
- std::is_same_v<UTuple, std::decay_t<UTuple>> は true である。
- std::tuple_size_v<TTuple> は std::tuple_size_v<UTuple> に等しい(
TTupleとUTupleは同じ数の要素を持つ)。 - std::tuple<std::common_reference_t<TQual<TTypes>..., UQual<UTypes>>...> は型として存在する。
[編集] メンバ型
| メンバ型 | 定義 |
type
|
std::tuple<std::common_reference_t<TQual<TTypes>..., UQual<UTypes>>...> |
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| 型のグループの共通の参照型を決定する (クラステンプレート) | |
2つのpairの共通参照型を決定する(クラステンプレート特殊化) |