|
426 | 426 | \rSec2[expr.context]{Context dependence}
|
427 | 427 |
|
428 | 428 | \pnum
|
429 |
| -\label{term.unevaluated.operand}% |
430 | 429 | In some contexts, \defnx{unevaluated operands}{unevaluated operand}
|
431 | 430 | appear~(\ref{expr.prim.req},
|
432 | 431 | \ref{expr.typeid},
|
|
5904 | 5903 |
|
5905 | 5904 | \pnum
|
5906 | 5905 | Abbreviating \grammarterm{pm-expression}\tcode{.*}\grammarterm{cast-expression} as \tcode{E1.*E2}, \tcode{E1}
|
5907 |
| -is called the \defn{object expression}. |
| 5906 | +is called the \defnx{object expression}{object expression!pointer-to-member operator}. |
5908 | 5907 | If the dynamic type of \tcode{E1} does not
|
5909 | 5908 | contain the member to which
|
5910 | 5909 | \tcode{E2} refers, the behavior is undefined.
|
|
7109 | 7108 | semantics depending on whether or not an expression satisfies these requirements.
|
7110 | 7109 | Expressions that satisfy these requirements,
|
7111 | 7110 | assuming that copy elision\iref{class.copy.elision} is not performed,
|
7112 |
| -are called |
7113 |
| -\indexdefn{expression!constant}% |
7114 |
| -\defnx{constant expressions}{constant expression}. |
| 7111 | +are called constant expressions. |
7115 | 7112 | \begin{note}
|
7116 |
| -Constant expressions can be evaluated |
7117 |
| -during translation. |
| 7113 | +Constant expressions can be evaluated during translation. |
7118 | 7114 | \end{note}
|
7119 | 7115 |
|
7120 | 7116 | \begin{bnf}
|
|
7151 | 7147 |
|
7152 | 7148 | \pnum
|
7153 | 7149 | A constant-initialized potentially-constant variable $V$ is
|
7154 |
| -\defn{usable in constant expressions} at a point $P$ if |
| 7150 | +\defnx{usable in constant expressions}{usable in constant expressions!variable} at a point $P$ if |
7155 | 7151 | $V$'s initializing declaration $D$ is reachable from $P$ and
|
7156 | 7152 | \begin{itemize}
|
7157 | 7153 | \item $V$ is constexpr,
|
7158 | 7154 | \item $V$ is not initialized to a TU-local value, or
|
7159 | 7155 | \item $P$ is in the same translation unit as $D$.
|
7160 | 7156 | \end{itemize}
|
7161 |
| -An object or reference is \defn{usable in constant expressions} if it is |
| 7157 | +An object or reference is \defnx{usable in constant expressions}{usable in constant expressions!object or reference} if it is |
7162 | 7158 | \begin{itemize}
|
7163 | 7159 | \item a variable that is usable in constant expressions, or
|
7164 | 7160 | \item a template parameter object\iref{temp.param}, or
|
|
0 commit comments