最終更新日時: 2025年07月09日 00時33分39秒 (JST)
Akira Takahashi が更新

履歴 編集

class template
<utility>

# std::common_type(C++23)

    namespace std {
      template<class T1, class T2, class U1, class U2>
        requires requires { typename pair<common_type_t<T1, U1>, common_type_t<T2, U2>>; }
      struct common_type<pair<T1, T2>, pair<U1, U2>> {
        using type = pair<common_type_t<T1, U1>, common_type_t<T2, U2>>;
      };
    }

## 概要

`pair`について、どちらからも変換可能な共通の型を取得できるようにする`common_type`の特殊化である。

## 効果

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

## 備考

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

## バージョン

### 言語

- C++23

### 処理系

- Clang: 3.0 ✅
- GCC: 4.6.1 ✅
- Visual C++: 2012 ✅

## 関連項目

- common_type

## 参照

- P2321R2 `zip`