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。