|
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 | 313 | \tcode{e1 . \opt{template} e2}
|
314 | 314 | naming a non-static data member,
|
315 | 315 | the set contains the potential results of \tcode{e1}.
|
316 |
| -\item If \tcode{e} is a class member access expression |
| 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 | 321 | \tcode{e1 .* e2},
|
322 | 322 | the set contains the potential results of \tcode{e1}.
|
323 |
| -\item If \tcode{e} has the form \tcode{(e1)}, the set contains the |
| 323 | +\item If $E$ has the form \tcode{(e1)}, the set contains the |
324 | 324 | potential results of \tcode{e1}.
|
325 |
| -\item If \tcode{e} is a glvalue conditional |
| 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}
|
|
5278 | 5278 | \end{example}
|
5279 | 5279 |
|
5280 | 5280 | \pnum
|
5281 |
| -The \defnx{immediate subexpressions}{immediate subexpression} of an expression \tcode{e} are |
| 5281 | +The \defnx{immediate subexpressions}{immediate subexpression} of an expression $E$ are |
5282 | 5282 | \begin{itemize}
|
5283 | 5283 | \item
|
5284 |
| -the constituent expressions of \tcode{e}'s operands\iref{expr.prop}, |
| 5284 | +the constituent expressions of $E$'s operands\iref{expr.prop}, |
5285 | 5285 | \item
|
5286 |
| -any function call that \tcode{e} implicitly invokes, |
| 5286 | +any function call that $E$ implicitly invokes, |
5287 | 5287 | \item
|
5288 |
| -if \tcode{e} is a \grammarterm{lambda-expression}\iref{expr.prim.lambda}, |
| 5288 | +if $E$ is a \grammarterm{lambda-expression}\iref{expr.prim.lambda}, |
5289 | 5289 | the initialization of the entities captured by copy and
|
5290 | 5290 | the constituent expressions of the \grammarterm{initializer} of the \grammarterm{init-capture}{s},
|
5291 | 5291 | \item
|
5292 |
| -if \tcode{e} is a function call\iref{expr.call} or implicitly invokes a function, |
| 5292 | +if $E$ is a function call\iref{expr.call} or implicitly invokes a function, |
5293 | 5293 | the constituent expressions of each default argument\iref{dcl.fct.default}
|
5294 | 5294 | used in the call, or
|
5295 | 5295 | \item
|
5296 |
| -if \tcode{e} creates an aggregate object\iref{dcl.init.aggr}, |
| 5296 | +if $E$ creates an aggregate object\iref{dcl.init.aggr}, |
5297 | 5297 | the constituent expressions of each default member initializer\iref{class.mem}
|
5298 | 5298 | used in the initialization.
|
5299 | 5299 | \end{itemize}
|
5300 | 5300 |
|
5301 | 5301 | \pnum
|
5302 |
| -A \defn{subexpression} of an expression \tcode{e} is |
5303 |
| -an immediate subexpression of \tcode{e} or |
5304 |
| -a subexpression of an immediate subexpression of \tcode{e}. |
| 5302 | +A \defn{subexpression} of an expression $E$ is |
| 5303 | +an immediate subexpression of $E$ or |
| 5304 | +a subexpression of an immediate subexpression of $E$. |
5305 | 5305 | \begin{note}
|
5306 | 5306 | Expressions appearing in the \grammarterm{compound-statement} of a \grammarterm{lambda-expression}
|
5307 | 5307 | are not subexpressions of the \grammarterm{lambda-expression}.
|
|
0 commit comments