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

int main(){} 

compilación con gcc da el error:Error con constexpr (gcc) - Error: un inicializador corsé-adjunto no está permitido aquí antes '{' token de

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

Es este un uso ilegal de constexpr ?

EDITAR

he intentado 3 diferentes versiones de gcc, y se compilan en la más reciente 4.7.0 tengo (me acaba de descargar, lo estoy usando MinGW-W64), por lo que parece ser un error solucionado (¡un enlace al error sería bueno!).

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

+0

@BenjaminLindley: descargué una versión más nueva y funcionó, por lo que parece ser un error solucionado (ver mis ediciones). ¡Gracias! (¿Debo eliminar esta pregunta?) –

+1

@Jesse: prefiero dejar la pregunta aquí (aunque, si es posible, mejorar el título, por ejemplo, agregar el mensaje de error). De esta forma, la próxima persona que tenga este problema sabrá actualizar. –

Respuesta

2

Se ha corregido un error. Confirmé que el código compila con g++ 4.7.0 20120311 (prerelease).

Cuestiones relacionadas