最終更新日時: 2025年07月10日 10時26分30秒 (JST)
Koichi Murase が更新

履歴 編集

# 集成体クラステンプレートのテンプレート引数推論 [P1816R0](C++20)

このページはC++20に採用された言語機能の変更を解説しています。

のちのC++規格でさらに変更される場合があるため関連項目を参照してください。

## 概要

C++17で導入されたクラステンプレートのテンプレート引数推論は、コンストラクタ引数からテンプレート引数を推論するものであった。

C++20では、ユーザー定義のコンストラクタをもたない集成体クラステンプレートの初期化からクラステンプレート引数を推論できるようにする。

    template <class T>
    struct Point {
      T x;
      T y;
    };

    Point p1{3.0, 4.0}; // C++17:NG C++20:OK

## 関連項目

- C++17 クラステンプレートのテンプレート引数推論

## 参照

- P1021R4 Filling holes in Class Template Argument Deduction
  - 提案の元になった文書
- P1816R0 Wording for class template argument deduction for aggregates
  - C++20に採択された提案文書