【发布时间】:2013-09-25 10:41:33
【问题描述】:
知道这是有效的 c++11
int i {1};
这个有效吗?
int j[] {{1}};
GCC 给出错误,发出警告。
【问题讨论】:
-
不必要的,你已经可以做到:int j[] = {1,2,3};
标签: c++ c++11 list-initialization aggregate-initialization
知道这是有效的 c++11
int i {1};
这个有效吗?
int j[] {{1}};
GCC 给出错误,发出警告。
【问题讨论】:
标签: c++ c++11 list-initialization aggregate-initialization
这是无效的,因为j 是int(标量)的数组。你可以
仅对本身是聚合的成员使用嵌入式大括号。
#include <initializer_list>
struct T
{
int x, y;
};
int main()
{
int j[] {{1}}; // error, int is scalar
T t[] {{1,2}}; // OK, T is aggregate
}
【讨论】: