This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/20397] improve diagnostic for 'is inaccessible' error
- From: "s dot franke at bebbosoft dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 5 Mar 2010 17:52:41 -0000
- Subject: [Bug c++/20397] improve diagnostic for 'is inaccessible' error
- References: <bug-20397-10237@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #13 from s dot franke at bebbosoft dot de 2010-03-05 17:52 -------
(in reply to comment #12)
Yes I am referring to the standard.
C++ std 1998:
class A { };
class B: private A { };
class C: public B {
A* p; // ok: A accessible
};
recent changes (someone went insane???):
class A { };
class B: private A { };
class C: public B {
A* p; // error: A inaccessible
};
but this compiles
class _A { int x; };
typedef _A A;
class B: private A { };
class C: public B {
A* p;
};
also this
#include <vector>
typedef std::vector<char> A;
class B: private A { };
class C: public B {
A* p;
};
and also this
#include <vector>
using namespace std;
class B: private vector<char> { };
class C: public B {
vector<char>* p; // ok: A accessible
};
very wierd and unlucky.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20397