struct X {
constexpr static char a1[] = "hello"; // Okay
constexpr static const char* a2[] = {"hello"}; // Error
};
int main(){}
mit gcc kompilieren gibt den Fehler:Fehler bei constexpr (gcc) - Fehler: ein in geschweiften Klammern stehenden Initialisierer hier nicht erlaubt ist, bevor ‚{‘ token
error: a brace-enclosed initializer is not allowed here before '{' token
Ist dies eine illegale Verwendung von constexpr ?
EDIT
habe ich versucht, 3 verschiedene Versionen von gcc, und auf dem neuesten 4.7.0 kompiliert Ich habe (ich es gerade heruntergeladen, ich mingw-w64 bin mit), so dass es sein schaut ein behobener Fehler (ein Link zum Bug wäre aber nett!).
4.7.0 20120311 (prerelease) // Okay
4.6.4 20120305 (prerelease) // Error
4.7.0 20110829 (experimental) // Error
@BenjaminLindley: Ich habe eine neuere Version heruntergeladen und es hat funktioniert, also scheint es sich um einen behobenen Fehler (siehe meine Änderungen). Vielen Dank! (Sollte ich diese Frage löschen?) –
@Jesse: Ich würde die Frage lieber hier belassen (wenn auch den Titel verbessern, wenn möglich, zB die Fehlermeldung hinzufügen). Auf diese Weise weiß die nächste Person, die dieses Problem hat, zu aktualisieren. –