https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65890
--- Comment #5 from frankhb1989 at gmail dot com --- (In reply to Jonathan Wakely from comment #3) > This was changed by > http://open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#613 > > It was a defect in the original standard. What possible advantage is there > in rejecting it in C++03 mode but accepting it in C++11 mode? i.e. why do > you consider this a bug? Mainly for testing of the conformance. Although it is treated a defect of the design and has been changed later, the old rules are still well-defined and the published standard itself is consistent. So if I did not get wrong about the purpose of '-std=', this should be a bug. Whether it is worth being fixed is another problem. On the other hand, I'd debate the resolution of this CWG issue is not pure improvement. There could be a trick to distinguish static and non-static data members through SFINAE on expressions like 'sizeof(&(C::x))'. It is broken now.