Namespaces
Variants

std::basic_common_reference<タプルライク>

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート(基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三者比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
Swap および 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
ヘッダ <tuple>
template< tuple-like TTuple, tuple-like UTuple,
          template<class> class TQual, template<class> class UQual >
    requires /* see below */
struct basic_common_reference<TTuple, UTuple, TQual, UQual>;
(C++23 以降) で定義

2つのtuple-like型の共通参照型は、std::tupleであり、これは両方の型の対応するすべての要素型ペアの共通参照型から構成されます。ここで、タプルライク型に対する cv 修飾および参照修飾子は、その要素型に適用されます。

次のように定義します。

  • TTypes を、std::tuple_element_t<i, TTuple> のシーケンスによって形成されるパックとします。ただし、すべての整数 i は [0, std::tuple_size_v<TTuple>) の範囲にあり、
  • UTypes を std::tuple_element_t<i, UTuple> のシーケンスによって形成されるパックとします。ただし、すべての整数 i は [0, std::tuple_size_v<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 の共通参照型を決定する
(クラステンプレート特殊化)