【发布时间】:2014-10-18 14:27:08
【问题描述】:
我想用这样的初始化列表初始化一个结构:
struct S
{
int a;
int b;
// S() : a(0), b(0){} // uncommenting will cause compile error:
// error C2440: 'initializing' : cannot convert from 'initializer-list' to 'S'
// S(int aArg, int bArg) : a(aArg), b(bArg) {} // adding this removes the error
}
int main()
{
S s{1,2}; // initialise with list
}
是否有充分的理由,为什么显式声明的默认构造函数会导致错误?我认为引入初始化列表是为了让程序员免于编写像第二个构造函数这样乏味的代码。
【问题讨论】:
标签: c++ c++11 language-lawyer initializer-list