[Bug c++/29043] Constructor for POD type with const member without member initializer accepted

andrew dot stubbs at st dot com gcc-bugzilla@gcc.gnu.org
Wed Sep 13 09:23:00 GMT 2006



------- Comment #2 from andrew dot stubbs at st dot com  2006-09-13 09:23 -------
(In reply to comment #1)
> As you've written it, class C doesn't have any non-static members.  Struct C::s
> hasn't been declared as a member object of C.  const int i is a member of C::s,
> not C, so C() without member initializers should be acceptable.  

How about this example:

struct S {
  const int i;
};

class C
{
public:
  C() { }    
  S s;
};

void f()
{
  C c;
  S s;
}

This fails at the line `S s;' in f(), but the `C c;' line is accepted silently.

The standard says the requirement applies to data-members *containing* a member
of const-qualified type.


-- 


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



More information about the Gcc-bugs mailing list