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

履歴 編集

宣言時のメンバ初期化を持つ型の集成体初期化を許可(C++14)

概要

C++11で導入されたメンバ初期化子は集成体の初期化と組み合わせて使用することができない問題があった。

C++11で不適格となる以下のコードは、C++14では適格となる:

#include <string>

struct Univ {
  std::string name;
  int rank;
  std::string city = "unknown";
};

int main()
{
  Univ u = {"Columbia", 10};             // OK: city=="unknown"
  Univ v = {"Columbia", 10, "New York"}; // OK
}

仕様

  • 集成体の定義として「非静的メンバ変数の初期化をもたない」ことが条件になっていたが、それを削除

関連項目

参照