Jam*_*sev 4 c++ arrays constexpr
必须在编译时知道数组维度,这意味着维度必须是常量表达式
另外一点是这样的
unsigned count = 42; // not a constant expression
constexpr unsigned size = 42; // a constant expression
Run Code Online (Sandbox Code Playgroud)
我会,然后期望以下声明失败
a[count]; // Is an error according to Primer
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.编译并运行良好.
还有一点奇怪的是,++count;在数组声明之后也没有引起任何问题.
用-std=c++11flag打开的程序g++4.71
这是为什么?
您的代码实际上不是合法的C++.有些编译器允许使用可变长度数组作为扩展,但它不是标准的C++.为了让海湾合作委员会对此抱怨,请通过-pedantic.一般来说,你应该总是至少传递这些警告标志去GCC:
-W -Wall -Wextra -pedantic
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
310 次 |
| 最近记录: |