最終更新日時(UTC):
が更新

履歴 編集

class template
<tuple>

std::basic_common_reference(C++23)

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>;
}

概要

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

処理系

関連項目

参照