You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the postfix-expression in a function call (8.5.1.2) is an unqualified-id, other namespaces not considered during the usual unqualified lookup (6.4.1) may be searched, and in those namespaces, namespace-scope friend function or function template declarations (14.3) not otherwise visible may be found. These modifications to the search depend on the types of the arguments (and for template template arguments, the namespace of the template argument).
If the compiler knows that a name in a postfix-expression is an unqualified-id of a function call, bullet point (3.3) in [basic.scope.argdep]/3 doesn't make sense, as the set X cannot contain a declaration that is not a function nor a function template.
Let X be the lookup set produced by unqualified lookup (6.4.1) and let Y be the lookup set produced by argument dependent lookup (defined as follows). If X contains
(3.1) — a declaration of a class member, or
(3.2) — a block-scope function declaration that is not a using-declaration, or
(3.3) — a declaration that is neither a function nor a function template
The text was updated successfully, but these errors were encountered:
If the postfix-expression E in the function call syntax evaluates to a class object of type “cv T”, then the set of candidate functions includes at least the function call operators of T. The function call operators of T are obtained by ordinary lookup of the name operator() in the context of (E).operator().
It seems to me your example still does not justify the need for [basic.scope.argdep]/(3.3), as there is no ADL in this case, as the postfix-expression is expanded with the name in between parentheses.
[basic.lookup.argdep]/1:
If the compiler knows that a name in a postfix-expression is an unqualified-id of a function call, bullet point (3.3) in [basic.scope.argdep]/3 doesn't make sense, as the set X cannot contain a declaration that is not a function nor a function template.
[basic.scope.argdep]/3:
The text was updated successfully, but these errors were encountered: