$ cat test.cc
struct X { static float const v=1; };
$ g++ -c -std=gnu++0x test.cc
test.cc:1:33: error: 'constexpr' needed for in-class initialization of
static data member 'v' of non-integral type
This will break a great deal of existing c++ code preventing easy
transition to c++0x. Maybe, the constexpr requirement should be relaxed
in gnu++0x mode.
Please see the trivial patch.
Thanks
Index: gcc/cp/decl.c
===================================================================
--- gcc/cp/decl.c (revision 167200)
+++ gcc/cp/decl.c (working copy)
@@ -7436,7 +7436,7 @@
in check_initializer. */
if (DECL_P (decl) && DECL_DECLARED_CONSTEXPR_P (decl))
return 0;
- else if (cxx_dialect >= cxx0x && !INTEGRAL_OR_ENUMERATION_TYPE_P (type))
+ else if (cxx_dialect >= cxx0x && !INTEGRAL_OR_ENUMERATION_TYPE_P (type) && flag_iso)
{
if (literal_type_p (type))
error ("%<constexpr%> needed for in-class initialization of static "