struct X {
constexpr static char a1[] = "hello"; // Okay
constexpr static const char* a2[] = {"hello"}; // Error
};
int main(){}
Kompilowanie z gcc daje błąd:Błąd constexpr (GCC) - błąd: klamra zamkniętych inicjator nie jest dozwolone tutaj przed „{” żeton
error: a brace-enclosed initializer is not allowed here before '{' token
Czy jest to niezgodne z prawem wykorzystanie constexpr ?
EDIT
próbowałem 3 różne wersje gcc, a opracowane na najnowszej 4.7.0 mam (Właśnie ściągnąłem go używam MinGW-W64), więc wygląda na naprawiony błąd (link do błędu byłby fajny!).
4.7.0 20120311 (prerelease) // Okay
4.6.4 20120305 (prerelease) // Error
4.7.0 20110829 (experimental) // Error
@BenjaminLindley: Pobrałem nowszą wersję i zadziałało, więc wygląda na naprawiony błąd (zobacz moje zmiany). Dzięki! (Czy powinienem usunąć to pytanie?) –
@Jesse: Wolałbym zostawić pytanie tutaj (chociaż poprawić tytuł, jeśli to możliwe, na przykład dodając komunikat o błędzie). W ten sposób kolejna osoba mająca ten problem będzie wiedzieć, aby zaktualizować. –