https://en.cppreference.com/w/cpp/language/new
double* p = new double[]{1,2,3};
在 cppreference 上看有这种初始化方式,但编译通不过,所以是上面写错了还是编译器实现问题?
https://en.cppreference.com/w/cpp/language/new
double* p = new double[]{1,2,3};
在 cppreference 上看有这种初始化方式,但编译通不过,所以是上面写错了还是编译器实现问题?
|
MeteorCatMay 7, 2019 via Android
1
g++版本问题,看下是不是 c++11
|
|
wevstyMay 7, 2019
2
试了一下
GCC 9.1,MSVC 19.20 ,clang 8.0 都提示编译错误。 其中 MSVC 的提示很清楚 ``` <source>(2): error C3078: array size must be specified in new expressions ``` 应该是这种写法本身错误或者没有任何编译器选择支持。 |
|
feng0vxMay 7, 2019 via Android
3
隐约记得可以初始化前面几个,所以还是楼上说的那样,声明数组大小
|
|
lrxiaoMay 7, 2019
5
大概是没有一个编译器实现了这种写法...这写法大概 03 就有了吧
|
|
mirrormanMay 7, 2019 via iPhone
6
new 的运算符如果没有重载成有列表初始化参数的函数那这个就是错误的,我觉得这个地方有点和 RAII 矛盾
|
|
iAcnMay 7, 2019 via Android
7
应该是没有给定动态数组的大小。
|
|
ylrshuiMay 7, 2019 via iPhone
8
看清楚 cppreference 示例前的说明,意思是这种写法不可用
|
|
ylrshuiMay 7, 2019 via iPhone
9
|
|
SeaRecluseMay 7, 2019
10
没有指定长度,怎么分配空间🐶
|
|
shfanzieMay 7, 2019
11
用支持 C++14 以上版本编译器就 OK 了。
|
|
dttzmmMay 7, 2019 via Android
12
@ylrshui is not optional 意思是不能是选填,就是说是必填项。此外,上面 auto 那个例子可是能够正常编译的。
|
|
missdeerMay 7, 2019
13
double* p = new double[3]{1,2,3};
|
|
wutiantongMay 7, 2019
14
楼上好多张口就来啊,我看可能是 cppreference 的一个勘误
|
|
turiMay 7, 2019
15
难道不是 1.0 2.0 3.0 ?
|