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
::= cl <<ahref="#mangle.expression">expression</a>>+ E # expression (expr-list), call
5677
+
::= cp <<ahref="#mangle.base-unresolved-name">base-unresolved-name</a>> <<ahref="#mangle.expression">expression</a>>* E # (name) (expr-list), call that would use argument-dependent lookup but for the parentheses
5678
5678
::= cv <<ahref="#mangle.type">type</a>> <<ahref="#mangle.expression">expression</a>> # type (expression), conversion with one argument
5679
5679
::= cv <<ahref="#mangle.type">type</a>> _ <<ahref="#mangle.expression">expression</a>>* E # type (expr-list), conversion with other than one argument
5680
5680
::= tl <<ahref="#mangle.type">type</a>> <<ahref="#mangle.braced-expression">braced-expression</a>>* E # type {expr-list}, conversion with braced-init-list argument
<p>If an implementation supports the full C99 designated initializer syntax (as an extension), a designator list comprising multiple designators results in
5772
5772
multiple nested <<ahref="#mangle.braced-expression">braced-expression</a>>s. For example, <code>X{.a.b[3] = 1}</code> should be mangled <code>tl1Xdi1adi1bdxLi3ELi1EE</code>.</p>
5773
5773
5774
+
<p>In C++, a call expression where the callee operand is an unqualified name
5775
+
uses argument-dependent lookup unless unqualified lookup finds certain kinds of
5776
+
declarations; see C++11 [basic.lookup.argdep]p3. Because this rule does not
5777
+
apply when the name is parenthesized, it is sometimes necessary to distinguish
5778
+
parenthesized and unparenthesized calls in the mangling, despite the general
5779
+
rule that parentheses can be ignored. This is encoded using the choice of
5780
+
<code>cl</code> or <code>cp</code> for the call expression. The
5781
+
<code>cp</code> mangling is used only when the callee operand is a parenthesized
5782
+
unresolved name and would have used ADL if it were not parenthesized. In
5783
+
particular, <code>cl</code> is still used when unqualified lookup finds a
5784
+
declaration that would suppress the use of ADL, such as a class member.</p>
0 commit comments