http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45829

--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-09-29 
22:59:39 UTC ---
(In reply to comment #6)
> 
> What is the point of allowing to initialize it then?

Static const members declared with initializers can be used in constant
expressions, see 9.4.2p4

9.4.2 clearly says:

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.

5. There shall be exactly one definition of a static data member that is used
in a program; no diagnostic is required; see 3.2.


(N.B. Allowing an in-class initializer for non-integral and non-enumeration
types in C++98 is a GCC extension.  I believe it would be conforming, but is
not required, for "-a" to be evaluated at translation time, without requiring a
definition of "a".)

Reply via email to