From cfe-dev Thu Feb 14 15:11:45 2013 From: Olivier Goffart Date: Thu, 14 Feb 2013 15:11:45 +0000 To: cfe-dev Subject: [cfe-dev] Access to static protected member from friends of derived classes. Message-Id: <1406271.8h7aOWuEp7 () gargamel> X-MARC-Message: https://marc.info/?l=cfe-dev&m=136085503503259 Hi, A few years ago, I was trying to fix the bug 6840 [1] that relates to acces= s to = static protected member from friends of derived classes. I made a patch that fixes it at the time, but it was rejected because this = was = considered as a drafting error in the standard [2]. = Recently, I attended a talk by a Debian dev who tried to compile all debian = packages with clang. And that bug was one frequent cause of compilation err= or. = [3] I was wondering if it was not time to revisit the decision, and consider th= at = this issue should be fixed after all. The problem is the following: class N { protected: static int m; }; class P : public N { friend class R; }; class R { = int foo() { = return N::m; // should work because the access is given via P. // but clang gives an error: // error: 'm' is a protected member of 'N' } }; C++11 =A711.4 explicitly states this is permitted, with an example. And gc= c = supports that fine. Opinions? -- = Olivier [1] http://llvm.org/bugs/show_bug.cgi?id=3D6840 [2] http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-June/009310.html [3] http://sylvestre.ledru.info/blog/media/5/rebuild-debian-presentation-cl= ang-July-10.pdf (slide 35) _______________________________________________ cfe-dev mailing list cfe-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev