2011-06-26 34 views
12

In class initialization feature, que permite inicializar miembros normales dentro de la propia clase,Tiene la característica "Inicialización de miembro de clase" creada en C++ 11?

struct A { 
    int a = 0; // error: ISO C++ forbids in-class initialization of non-const static member ‘a’ 
}; 

Esto está dando error en la última compilador gcc-4.6 (con -std=c++0x). ¿Esta característica está incluida en el estándar C++ 11 o gcc aún no la admite?

+3

Su ejemplo compila bien con clang (tronco svn). –

+0

¿Has probado con gcc 4.7? Puede haber sido incorporado en. –

+0

@Matthieu, con un montón de esfuerzo de alguna manera instalé gcc-4.6 en Ubuntu una semana atrás, asumiendo que admite todas las características. ¡Y ahora estoy aprendiendo que gcc-4.7 ya está disponible! : '( – iammilind

Respuesta

23

Sí, eso es legal en C++ 0x. Hay un ejemplo de esto en N3290 §12.6.2/8:

struct C { 
    /* ... */ 
    int j = 5; // OK: j has the value 5 
}; 
Cuestiones relacionadas