https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68186

ensadc at mailnesia dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ensadc at mailnesia dot com

--- Comment #3 from ensadc at mailnesia dot com ---
The error is due to the call of `perform_or_defer_access_check` in
`alter_access` in [`class.cc`].

[`class.cc`]: https://gcc.gnu.org/cgit/gcc/tree/gcc/cp/class.cc

There have been several changes in `alter_access` over the years, but it seems
that the access check has been there since
g:38afd588c5181ee770848ebefdfdb288d28f7513. This commit predates the first
message in `gcc-patches` archives.

The standard requires the members named in the *using-declaration* to be
accessible. But do they need to accessible along the base-type path? My
understanding is that they only need to be accessible through the qualified
name.

C++98 [namespace.udecl]/14:

> All instances of the name mentioned in a using-declaration shall be 
> accessible.

N5046 [namespace.udecl]/14:

> In a using-declarator that does not name a constructor, every declaration 
> named shall be accessible.

Reply via email to