我试图使用初始化列表初始化一个动态声明的数组,但我注意到在使用GCC时必须提供数组大小,否则会出现错误。如果省略数组大小并尝试使用MSVC做同样的操作,则不会出现任何错误。当使用初始化列表与动态数组时是否必须提供数组大小?这是一些实现定义的东西吗,这就是为什么两个编译器不同的原因吗?
int *array { new int [3] {0, 1, 2} }; // Works with both MSVC and GCC.
int *array { new int [] {0, 1, 2} }; // Works only with MSVC, not GCC.
initializer-list
标签是指std::initializer_list
) - 463035818_is_not_a_numberdouble* p = new double[]{1,2,3};
作为可行的例子。 - Lukas-T