In class initialization feature, which allows to initialize normal members inside the class itself,
struct A {
int a = 0; // error: ISO C++ forbids in-class initialization of non-const static member ‘a’
};
This is giving error in latest compiler gcc-4.6 (with -std=c++0x
). Has this feature made into the C++11 standard or gcc still doesn't support it ?
Yes, that is legal in C++0x. There is an example of this at N3290 §12.6.2/8:
struct C {
/* ... */
int j = 5; // OK: j has the value 5
};
来源:https://stackoverflow.com/questions/6482566/has-in-class-member-initialization-feature-made-into-c11