http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45829
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-09-30 08:10:39 UTC --- (In reply to comment #8) > > But -a (or 0.0-a) is not a constant expression, so having an in-class > initializer seems suspicious, couldn't we warn at least? Eh? It could be used in a constant expression in a different translation unit. > What happens if the > definition is initialized to a different value? Please read 9.4.2 again 4. ... The member shall still be defined in a name-space scope if it is used in the program and the namespace scope definition SHALL NOT CONTAIN AN INITIALIZER.