This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/21363] New: no compilation error for inheriting Base class with private constructor when the constructor for Derived Class is compiler generated
- From: "hingwah at hingwah dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 May 2005 16:31:21 -0000
- Subject: [Bug c++/21363] New: no compilation error for inheriting Base class with private constructor when the constructor for Derived Class is compiler generated
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following code generate a compilation error:
class Foo {
private:
Foo() { }
};
class Bar : public Foo
{
public:
Bar() {}
};
int main()
{
return 0;
}
however,commenting out "Bar(){}" (i.e. let the compiler generate one for me),do
not cause any compilation error.
the same case for virtual base constructor(in which I discover it when reading
C++ faq 23.9)
class FooBase
{
friend class Foo;
private:
FooBase();
};
class Foo : virtual private FooBase
{
public:
Foo() { }
};
class Bar : private virtual Foo
{
public:
Bar() {} //no error if comment it out
};
int main()
{
return 0;
}
test on gcc 3.3 and gcc 3.4 in debian:
g++-3.4 (GCC) 3.4.4 20050314 (prerelease) (Debian 3.4.3-12)
g++-3.3 (GCC) 3.3.5 (Debian 1:3.3.5-12)
--
Summary: no compilation error for inheriting Base class with
private constructor when the constructor for Derived
Class is compiler generated
Product: gcc
Version: 3.3.5
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hingwah at hingwah dot net
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21363