• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    class template
    <tuple>

    std::basic_common_reference

    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

    処理系

    関連項目

    参照