|
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},
|
|
5935 | 5934 |
|
5936 | 5935 | \pnum
|
5937 | 5936 | Abbreviating \grammarterm{pm-expression}\tcode{.*}\grammarterm{cast-expression} as \tcode{E1.*E2}, \tcode{E1}
|
5938 |
| -is called the \defn{object expression}. |
| 5937 | +is called the \defnx{object expression}{object expression!pointer-to-member operator}. |
5939 | 5938 | If the dynamic type of \tcode{E1} does not
|
5940 | 5939 | contain the member to which
|
5941 | 5940 | \tcode{E2} refers, the behavior is undefined.
|
|
7140 | 7139 | semantics depending on whether or not an expression satisfies these requirements.
|
7141 | 7140 | Expressions that satisfy these requirements,
|
7142 | 7141 | assuming that copy elision\iref{class.copy.elision} is not performed,
|
7143 |
| -are called |
7144 |
| -\indexdefn{expression!constant}% |
7145 |
| -\defnx{constant expressions}{constant expression}. |
| 7142 | +are called constant expressions. |
7146 | 7143 | \begin{note}
|
7147 |
| -Constant expressions can be evaluated |
7148 |
| -during translation. |
| 7144 | +Constant expressions can be evaluated during translation. |
7149 | 7145 | \end{note}
|
7150 | 7146 |
|
7151 | 7147 | \begin{bnf}
|
|
7182 | 7178 |
|
7183 | 7179 | \pnum
|
7184 | 7180 | A constant-initialized potentially-constant variable $V$ is
|
7185 |
| -\defn{usable in constant expressions} at a point $P$ if |
| 7181 | +\defnx{usable in constant expressions}{usable in constant expressions!variable} at a point $P$ if |
7186 | 7182 | $V$'s initializing declaration $D$ is reachable from $P$ and
|
7187 | 7183 | \begin{itemize}
|
7188 | 7184 | \item $V$ is constexpr,
|
7189 | 7185 | \item $V$ is not initialized to a TU-local value, or
|
7190 | 7186 | \item $P$ is in the same translation unit as $D$.
|
7191 | 7187 | \end{itemize}
|
7192 |
| -An object or reference is \defn{usable in constant expressions} if it is |
| 7188 | +An object or reference is \defnx{usable in constant expressions}{usable in constant expressions!object or reference} if it is |
7193 | 7189 | \begin{itemize}
|
7194 | 7190 | \item a variable that is usable in constant expressions, or
|
7195 | 7191 | \item a template parameter object\iref{temp.param}, or
|
|
0 commit comments