Skip to content

Latest commit

 

History

History
52 lines (38 loc) · 2.39 KB

File metadata and controls

52 lines (38 loc) · 2.39 KB

basic_common_reference

  • tuple[meta header]
  • std[meta namespace]
  • class template[meta id-type]
  • cpp23[meta cpp]
namespace std {
template<tuple-like TTuple, tuple-like UTuple,
    template<class> class TQual, template<class> class UQual>
  struct basic_common_reference<TTuple, UTuple, TQual, UQual>;
}
  • basic_common_reference[link /reference/type_traits/basic_common_reference.md]
  • tuple-like[link ../tuple-like.md]

概要

tupletuple-likeなオブジェクについて、common_referenceで共通の参照型を取得できるようにアダプトするbasic_common_referenceの特殊化である。

ユーザーが直接この特殊化を利用する必要はない。common_referenceを使用すること。

効果

tuple<common_reference_t<TQual<TTypes>, UQual<UTypes>>...>によって得られた型をメンバ型typeとして定義する。

要件

  • TTupleUTupleのどちらかがtupleの特殊化であること。
  • TTupleUTupleのそれぞれについて、(次のTを置き換える形で)is_same_v<T, decay_t<T>>であること。
    • 実質的にはTTupleUtupleについて、参照型ではなく、最上位のconst/volatile修飾も持っていないこと要求する。
  • TTupleUTupleの要素数が一致していること。
  • tuple<common_reference_t<TQual<TTypes>, UQual<UTypes>>...>が正しく型を表すこと。

バージョン

言語

  • C++23

処理系

関連項目

参照