struct X
{
int a;
int b;
};
int f(X x)
{
return x.a + x.b;
}
int main()
{
int n = f({1, 2});
}
Visual Studio 2012(Nov CTP)报告:
error C2664: 'int f(const X &)' : cannot convert parameter 1 from
'initializer-list' to 'X'
Reason: cannot convert from 'initializer-list' to 'X'
Only an initializer-list with zero or one elements can be converted to this type
Build FAILED.
答案 0 :(得分:1)
如果要将初始化列表样式语法传递给构造函数,则必须将std::initializer_list
类型传递给构造函数。然后,当传递{ }
语法样式构造时,此类型将构造一个类型数组。
答案 1 :(得分:1)
Visual Studio 2012(Nov CTP)报告:
它甚至不是 beta 编译器。它应该工作。我会链接到你在ideaone上工作的代码,但是这个网站不会这样做。
提交错误报告。