最終更新日時: 2025年08月24日 01時37分25秒 (JST)
Raclamusi が更新

履歴 編集

class template
<utility>

# std::basic_common_reference(C++23)

    namespace std {
      template<class T1, class T2, class U1, class U2,
        template<class> class TQual, template<class> class UQual>
      struct basic_common_reference<pair<T1, T2>, pair<U1, U2>, TQual, UQual> {
        using type = pair<common_reference_t<TQual<T1>, UQual<U1>>,
                          common_reference_t<TQual<T2>, UQual<U2>>>;
      };
    }

## 概要

`pair`について、`common_reference`で共通の参照型を取得できるようにアダプトする`basic_common_reference`の特殊化である。

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

## 効果

`pair<common_reference_t<TQual<T1>, UQual<U1>>, common_reference_t<TQual<T2>, UQual<U2>>>`によって得られた型をメンバ型`type`として定義する。

## 要件

- `pair<common_reference_t<TQual<T1>, UQual<U1>>, common_reference_t<TQual<T2>, UQual<U2>>>`が型を表すこと。

## バージョン

### 言語

- C++23

### 処理系

- Clang: ???
- GCC: ???
- ICC: ???
- Visual C++: ???

## 関連項目

- `basic_common_reference`

## 参照

- P2321R2 `zip`