【发布时间】:2017-07-16 13:06:22
【问题描述】:
我的代码如下
struct A {int i; int j;}
int main()
{
array<A, 2> a;
a = {{1,2},{3,4}}; //compilation error: not take a right-hand operand of
//type 'initializer list' (or no acceptable conversion)
}
我认为这是一个嵌套聚合初始化,但为什么不工作呢?以及如何通过更改代码使a = {{1,2},{3,4}} 工作?
找工作
a = { {{1,2},{3,4}} };
不知道为什么?
【问题讨论】:
-
这是赋值,不是初始化。
-
@Neil Butterworth: 没错,但正式的
{}初始化器将用于初始化一个临时 RHS 对象,然后将其传递给=运算符。 -
@AnT 这很好地回答了我的问题。谢谢!
标签: c++ c++11 aggregate-initialization