Ответ 1
Да, это законно в С++ 0x. Вот пример этого в N3290 §12.6.2/8:
struct C {
/* ... */
int j = 5; // OK: j has the value 5
};
В функции инициализации класса, которая позволяет инициализировать нормальные члены внутри самого класса,
struct A {
int a = 0; // error: ISO C++ forbids in-class initialization of non-const static member ‘a’
};
Это дает ошибку в последнем компиляторе gcc-4.6 (с -std=c++0x
). Эта функция, внесенная в стандарт С++ 11 или gcc, все еще не поддерживает ее?
Да, это законно в С++ 0x. Вот пример этого в N3290 §12.6.2/8:
struct C {
/* ... */
int j = 5; // OK: j has the value 5
};