5
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(11 月 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.
4

2 回答 2

2

Visual Studio 2012(11 月 CTP)报告:

它甚至不是一个测试版编译器。它应该可以工作。我会链接到你在ideaone上工作的代码,但这个网站不会让你这样做。

提交关于它的错误报告。

于 2013-01-04T03:29:25.857 回答
1

如果要将初始化器列表样式语法传递给构造函数,则必须将std::initializer_list类型传递给构造函数。{ }然后,此类型将在传递语法样式构造时构造您的类型数组。

于 2012-12-23T17:43:35.627 回答