[Bug c++/84837] New: unqualified lookup in friend declaration
nathan at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 12 20:19:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84837
Bug ID: 84837
Summary: unqualified lookup in friend declaration
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: nathan at gcc dot gnu.org
Target Milestone: ---
Created attachment 43635
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43635&action=edit
example
in a friend declaration of the form
class B::Y {
friend int A::X::f (type);
}
(A & B are namespaces or enclosing classes). what scopes are searched for
type?
[basic.lookup.unqual]p10, tells us we should search
class A::X as for member lookup, then if not found perform an unqualified
lookup in the current scope -- that is B::Y, B, ::
We instead search A::X then B::Y then A then ::.
Other compilers also get this wrong in different ways.
The example fails to compile because we find non-types in scopes we should not
have searched.
More information about the Gcc-bugs
mailing list