6
struct X {
constexpr static char a1[] = "hello"; // Okay
constexpr static const char* a2[] = {"hello"}; // Error
};

int main(){}

用 gcc 编译会报错:

错误:在“{”标记之前不允许使用大括号括起来的初始化程序

这是非法使用 constexpr 吗?

编辑

我尝试了 3 个不同版本的 gcc,它在我拥有的最新 4.7.0 上编译(我刚刚下载了它,我正在使用 mingw-w64),所以它看起来是一个固定的错误(错误的链接是不过不错!)。

4.7.0 20120311 (prerelease) // 好的
4.6.4 20120305 (prerelease) // 错误
4.7.0 20110829 (experimental) // 错误

4

1 回答 1

2

这是一个已修复的错误。我已经确认代码可以用g++ 4.7.0 20120311 (prerelease).

于 2012-03-28T06:55:45.080 回答