|
300 | 300 | an unevaluated operand\iref{expr.prop},
|
301 | 301 | a subexpression thereof, or
|
302 | 302 | a conversion in an initialization or conversion sequence in such a context.
|
303 |
| -The set of \defn{potential results} of an expression \tcode{e} is |
| 303 | +The set of \defn{potential results} of an expression $E$ is |
304 | 304 | defined as follows:
|
305 | 305 | \begin{itemize}
|
306 |
| -\item If \tcode{e} is an |
| 306 | +\item If $E$ is an |
307 | 307 | \grammarterm{id-expression}\iref{expr.prim.id}, the set
|
308 |
| -contains only \tcode{e}. |
309 |
| -\item If \tcode{e} is a subscripting operation\iref{expr.sub} with |
| 308 | +contains only $E$. |
| 309 | +\item If $E$ is a subscripting operation\iref{expr.sub} with |
310 | 310 | an array operand, the set contains the potential results of that operand.
|
311 |
| -\item If \tcode{e} is a class member access |
| 311 | +\item If $E$ is a class member access |
312 | 312 | expression\iref{expr.ref} of the form
|
313 |
| -\tcode{e1 . \opt{template} e2} |
| 313 | +\tcode{$E_1$ . \opt{template} $E_2$} |
314 | 314 | naming a non-static data member,
|
315 |
| -the set contains the potential results of \tcode{e1}. |
316 |
| -\item If \tcode{e} is a class member access expression |
| 315 | +the set contains the potential results of $E_1$. |
| 316 | +\item If $E$ is a class member access expression |
317 | 317 | naming a static data member,
|
318 | 318 | the set contains the \grammarterm{id-expression} designating the data member.
|
319 |
| -\item If \tcode{e} is a pointer-to-member |
| 319 | +\item If $E$ is a pointer-to-member |
320 | 320 | expression\iref{expr.mptr.oper} of the form
|
321 |
| -\tcode{e1 .* e2}, |
322 |
| -the set contains the potential results of \tcode{e1}. |
323 |
| -\item If \tcode{e} has the form \tcode{(e1)}, the set contains the |
324 |
| -potential results of \tcode{e1}. |
325 |
| -\item If \tcode{e} is a glvalue conditional |
| 321 | +\tcode{$E_1$ .* $E_2$}, |
| 322 | +the set contains the potential results of $E_1$. |
| 323 | +\item If $E$ has the form \tcode{($E_1$)}, the set contains the |
| 324 | +potential results of $E_1$. |
| 325 | +\item If $E$ is a glvalue conditional |
326 | 326 | expression\iref{expr.cond}, the set is the union of the sets of
|
327 | 327 | potential results of the second and third operands.
|
328 |
| -\item If \tcode{e} is a comma expression\iref{expr.comma}, the set |
| 328 | +\item If $E$ is a comma expression\iref{expr.comma}, the set |
329 | 329 | contains the potential results of the right operand.
|
330 | 330 | \item Otherwise, the set is empty.
|
331 | 331 | \end{itemize}
|
332 | 332 | \begin{note}
|
333 | 333 | This set is a (possibly-empty) set of \grammarterm{id-expression}{s},
|
334 |
| -each of which is either \tcode{e} or a subexpression of \tcode{e}. |
| 334 | +each of which is either $E$ or a subexpression of $E$. |
335 | 335 | \begin{example}
|
336 | 336 | In the following example, the set of potential results of the initializer
|
337 | 337 | of \tcode{n} contains the first \tcode{S::x} subexpression, but not the second
|
|
386 | 386 |
|
387 | 387 | \pnum
|
388 | 388 | A variable \tcode{x} whose name appears as a
|
389 |
| -potentially-evaluated expression \tcode{e} |
390 |
| -is \defnx{odr-used}{odr-use} by \tcode{e} unless |
| 389 | +potentially-evaluated expression $E$ |
| 390 | +is \defnx{odr-used}{odr-use} by $E$ unless |
391 | 391 | \begin{itemize}
|
392 | 392 | \item
|
393 | 393 | \tcode{x} is a reference that is
|
394 | 394 | usable in constant expressions\iref{expr.const}, or
|
395 | 395 | \item
|
396 | 396 | \tcode{x} is a variable of non-reference type that is
|
397 | 397 | usable in constant expressions and has no mutable subobjects, and
|
398 |
| - \tcode{e} is an element of the set of potential results of an expression |
| 398 | + $E$ is an element of the set of potential results of an expression |
399 | 399 | of non-volatile-qualified non-class type
|
400 | 400 | to which the lvalue-to-rvalue conversion\iref{conv.lval} is applied, or
|
401 | 401 | \item
|
402 | 402 | \tcode{x} is a variable of non-reference type, and
|
403 |
| - \tcode{e} is an element of the set of potential results |
| 403 | + $E$ is an element of the set of potential results |
404 | 404 | of a discarded-value expression\iref{expr.prop}
|
405 | 405 | to which the lvalue-to-rvalue conversion is not applied.
|
406 | 406 | \end{itemize}
|
|
5527 | 5527 | \end{example}
|
5528 | 5528 |
|
5529 | 5529 | \pnum
|
5530 |
| -The \defnx{immediate subexpressions}{immediate subexpression} of an expression \tcode{e} are |
| 5530 | +The \defnx{immediate subexpressions}{immediate subexpression} of an expression $E$ are |
5531 | 5531 | \begin{itemize}
|
5532 | 5532 | \item
|
5533 |
| -the constituent expressions of \tcode{e}'s operands\iref{expr.prop}, |
| 5533 | +the constituent expressions of $E$'s operands\iref{expr.prop}, |
5534 | 5534 | \item
|
5535 |
| -any function call that \tcode{e} implicitly invokes, |
| 5535 | +any function call that $E$ implicitly invokes, |
5536 | 5536 | \item
|
5537 |
| -if \tcode{e} is a \grammarterm{lambda-expression}\iref{expr.prim.lambda}, |
| 5537 | +if $E$ is a \grammarterm{lambda-expression}\iref{expr.prim.lambda}, |
5538 | 5538 | the initialization of the entities captured by copy and
|
5539 | 5539 | the constituent expressions of the \grammarterm{initializer} of the \grammarterm{init-capture}{s},
|
5540 | 5540 | \item
|
5541 |
| -if \tcode{e} is a function call\iref{expr.call} or implicitly invokes a function, |
| 5541 | +if $E$ is a function call\iref{expr.call} or implicitly invokes a function, |
5542 | 5542 | the constituent expressions of each default argument\iref{dcl.fct.default}
|
5543 | 5543 | used in the call, or
|
5544 | 5544 | \item
|
5545 |
| -if \tcode{e} creates an aggregate object\iref{dcl.init.aggr}, |
| 5545 | +if $E$ creates an aggregate object\iref{dcl.init.aggr}, |
5546 | 5546 | the constituent expressions of each default member initializer\iref{class.mem}
|
5547 | 5547 | used in the initialization.
|
5548 | 5548 | \end{itemize}
|
5549 | 5549 |
|
5550 | 5550 | \pnum
|
5551 |
| -A \defn{subexpression} of an expression \tcode{e} is |
5552 |
| -an immediate subexpression of \tcode{e} or |
5553 |
| -a subexpression of an immediate subexpression of \tcode{e}. |
| 5551 | +A \defn{subexpression} of an expression $E$ is |
| 5552 | +an immediate subexpression of $E$ or |
| 5553 | +a subexpression of an immediate subexpression of $E$. |
5554 | 5554 | \begin{note}
|
5555 | 5555 | Expressions appearing in the \grammarterm{compound-statement} of a \grammarterm{lambda-expression}
|
5556 | 5556 | are not subexpressions of the \grammarterm{lambda-expression}.
|
|
0 commit comments