C++ Logo

std-discussion

Advanced search

using and weird member access

From: Yongwei Wu <wuyongwei_at_[hidden]>
Date: Mon, 11 May 2026 23:31:34 +0800
Is the following code valid?

class Base { public: int member; };
class Middle : private Base {};
struct Derived : public Middle { public: using ::Base::member; };

I am inclined to think it is not valid, as :Base::member is not really
accessible inside Derived. I believe accessibility is a requirement:
https://eel.is/c++draft/namespace.udecl#14.sentence-1.

However, while GCC rejects the code, both Clang and EDG accept it:
https://godbolt.org/z/Y33drKb6n.

Any comments?

-- 
Yongwei Wu
URL: http://wyw.dcweb.cn/

Received on 2026-05-11 15:31:53