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
[contents,fs.req.namespace] Qualify only namespace-scope names LWG2818 #1913
Conversation
Editorial meeting: What if there are nested namespaces? What if this is ambiguous (different namespaces)? |
I have rebased the patch, but it does not yet implement the "editorial meeting" outcome. This patch is currently not ready to be merged. |
e3dbfe2
to
1a21a65
Compare
I would like to make sure that LWG has a chance to look at this and comment on it before it's applied. |
We appear to have quite a few places that fail to satisfy this "unless otherwise specified" rule (these are pre-existing errors, but still): [optional.swap]'s Table 43 says "calls
... which is wrong, and likewise for [priqueue.overview] and [stack.defn]. [container.node.modifiers] likewise uses The definition of All this makes me think that perhaps we should move the "swap is found by ADL" rule into the front matter: "Unless otherwise specified, argument-dependent name lookup is only performed within the standard library for operator-function-ids and for the identifier |
Rebased, |
8726270
to
20b2b7c
Compare
I've added the front-matter talk about "swap", which results in fewer changes than talking about ADL everywhere "swap" appears. @jwakely, could you have LWG look at this? |
45d536b
to
d709495
Compare
The only residual open issue is the special treatment of |
@jwakely, this adds special treatment for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make_error_code
and make_error_condition
also need to be looked up using ADL, but I haven't opened the LWG issue about that yet.
@tkoeppe, this looks ready now. |
This is not accurate:
So, the implementer needs to use |
It does not make sense to attempt to qualify class members
with a nested-name-specifier consisting of namespace-names.
Fixes #1793.