This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-11-05


207. using-declarations and protected access

Section: 11.8.3  [class.access.base]     Status: CD1     Submitter: Jason Merrill     Date: 28 Feb 2000

[Moved to DR at 10/01 meeting.]

Consider the following example:

 class A { protected: static void f() {}; }; class B : A { public: using A::f; void g() { A::f(); } }; 

The standard says in 11.8.3 [class.access.base] paragraph 4 that the call to A::f is ill-formed:

A member m is accessible when named in class N if

Here, m is A::f and N is A.

It seems clear to me that the third bullet should say "public, private or protected".

Steve Adamczyk:The words were written before using-declarations existed, and therefore didn't anticipate this case.

Proposed resolution (04/01):

Modify the third bullet of the third change ("A member m is accessible...") in the resolution of issue 9 to read "public, private, or protected" instead of "private or protected."