2012-03-28 45 views
6
struct X { 
constexpr static char a1[] = "hello"; // Okay 
constexpr static const char* a2[] = {"hello"}; // Error 
}; 

int main(){} 

用gcc編譯給出了錯誤:誤差constexpr(GCC) - 錯誤:一個括號內的初始化這裏不允許使用之前,「{」令牌

error: a brace-enclosed initializer is not allowed here before '{' token

這是非法使用constexpr的?

編輯

我試過3個不同版本的gcc,並在最新的4.7.0編譯的我(我只是下載了它,我使用的MinGW-W64),所以它看起來是一個固定的錯誤(一個錯誤的鏈接會很好,但!)。

4.7.0 20120311 (prerelease) // Okay
4.6.4 20120305 (prerelease) // Error
4.7.0 20110829 (experimental) // Error

+0

@BenjaminLindley:我下載了一個更新的版本,它工作,所以它似乎是一個固定的錯誤(請參閱我的編輯)。謝謝! (我應該刪除這個問題嗎?) – 2012-03-28 02:36:49

+1

@Jesse:我寧願在這裏留下問題(儘管如果可能的話改進標題,例如添加錯誤消息)。這樣有此問題的下一個人將知道要更新。 – 2012-03-28 06:45:03

回答

2

這是一個已修復的錯誤。我已經確認代碼與g++ 4.7.0 20120311 (prerelease)編譯。

相關問題