[英]C++ compiler throws error on dynamic array with default values
Mac g++ 使用以下代码引发编译错误:
#include <iostream>
using namespace std;
int main(int argc, char ** argv) {
int * p = new int[5] {1,2,3};
return 0;
}
我尝试了一个在线编译器,它编译并运行没有错误。
mac编译器有问题吗? 我可以做些什么来改变它的工作方式,还是应该安装另一个 c++ 编译器?
编辑:
错误:
test.cpp:6:25: error: expected ';' at end of declaration
int * p = new int[5] {1,2,3};
编译器目标和版本:
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
编译命令:
g++ test.cpp
没有根本的理由不允许更复杂的初始化程序,只是 C++03 没有针对它的语法结构。 在 C++ 的下一个版本中,您将能够执行类似的操作。 int* p = new int[5] {0, 1, 2, 3, 4};
您可以尝试将-std=c++11
添加到命令行,这应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.