New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Two conflict notes about member lookup occurred in base-specifier #4775
Comments
There's a broader issue here: the lookup for a dependent qualified name is erroneously said to take place from its definition, full stop ([temp.res.general]/1). Obviously in simple examples like template<class T>
struct wrap {using type=T::type;};
struct A {using type=int;};
wrap<A>::type x; // OK the lookup for Once we (I) fix that, we should come back to this to make sure it says what we want. (I know not everyone was happy being able to use lookup into base classes in other base-specifiers anyway.) |
Actually, this issue is accompanied by #4776. In that issue, I claim the definition of a class introduces a class scope rather than merely declaration does, which seems can resolve we do not lookup into base classes in other base-specifiers. I also tried to feedback this issue to core language issue, while his opinion is
It appears to me that such an opinion is stressing this issue #4776 (comment) I have asked. |
@opensdh
[basic.scope.class#note-1]
The note and the example state that the member lookup from a program point P at a base-specifier cannot find any member.
However, the note [class.member.lookup#note-2] gives a different conclusion, that is
It seems like the base class
A
could be considered since it appears before point P inB<C>
. In addition, except that P occurs in "base-specifier-list", I cannot figure out a case that there is a base class that can appear after P.The text was updated successfully, but these errors were encountered: