C++11 標準 8.5.4.3 は次のように述べています。
「初期化子リストに要素がなく、T がデフォルトのコンストラクターを持つクラス型の場合、オブジェクトは値で初期化されます。」
struct A
{
int get() { return i; }
private:
int i;
};
int main()
{
A a = {};
int n = a.get();
cout << n << endl;
// n is a random number rather than 0
return 0;
}
これは VC++ のバグですか? 私の VC++ は最新の 2012 年 11 月の CTP です。