[Bug c++/52366] [c++11] static constexpr function cant initialize static constexpr

richardvoigt at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Jul 17 20:32:00 GMT 2012


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

Ben Voigt <richardvoigt at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |richardvoigt at gmail dot
                   |                            |com

--- Comment #4 from Ben Voigt <richardvoigt at gmail dot com> 2012-07-17 20:32:26 UTC ---
No, this is not a duplicate.

This code involves a *brace-or-equal-initializer*, the code in 52315 does not,
and there are special rules for brace-or-equal-initializers in section 9.2 of
the Standard.  In particular, the class definition is complete inside the
initializer, although it isn't complete inside the array bounds in 52315.

"Within the class member-specification, the class is regarded as complete
within function bodies, default arguments, exception-specifications, and
brace-or-equal-initializers for non-static data members (including such things
in nested classes)."

Since this is a static data member, the exception doesn't apply, and this code
may in fact be invalid, but it isn't the same case as the other defect report.



More information about the Gcc-bugs mailing list