|
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