|
7973 | 7973 | A \defnadj{constant}{expression} is either
|
7974 | 7974 | a glvalue core constant expression that refers to
|
7975 | 7975 | an entity that is a permitted result of a constant expression (as defined below), or
|
7976 |
| -a prvalue core constant expression whose value |
| 7976 | +a prvalue core constant expression whose result object\iref{basic.lval} |
7977 | 7977 | satisfies the following constraints:
|
7978 | 7978 | \begin{itemize}
|
7979 | 7979 | \item
|
7980 |
| - if the value is an object of class type, |
| 7980 | + if the result object is an object of class type, |
7981 | 7981 | each non-static data member of reference type refers to
|
7982 | 7982 | an entity that is a permitted result of a constant expression,
|
7983 | 7983 |
|
7984 | 7984 | \item
|
7985 |
| - if the value is an object of scalar type, |
| 7985 | + if the result object is an object of scalar type, |
7986 | 7986 | it does not have an indeterminate or erroneous value\iref{basic.indet},
|
7987 | 7987 |
|
7988 | 7988 | \item
|
7989 |
| - if the value is of pointer type, it is |
| 7989 | + if the result object is of pointer type, it is |
7990 | 7990 | a pointer to an object with static storage duration,
|
7991 | 7991 | a pointer past the end of such an object\iref{expr.add},
|
7992 | 7992 | a pointer to a non-immediate function,
|
7993 | 7993 | or a null pointer value,
|
7994 | 7994 |
|
7995 | 7995 | \item
|
7996 |
| - if the value is of pointer-to-member-function type, |
| 7996 | + if the result object is of pointer-to-member-function type, |
7997 | 7997 | it does not designate an immediate function, and
|
7998 | 7998 |
|
7999 | 7999 | \item
|
8000 |
| - if the value is an object of class or array type, |
8001 |
| - each subobject satisfies these constraints for the value. |
| 8000 | + if the result object is an object of class or array type, |
| 8001 | + each subobject satisfies these constraints for the result object. |
8002 | 8002 | \end{itemize}
|
8003 | 8003 | An entity is a
|
8004 | 8004 | \defnx{permitted result of a constant expression}{constant expression!permitted result of}
|
8005 | 8005 | if it is an
|
8006 | 8006 | object with static storage duration that either is not a temporary object or is
|
8007 |
| -a temporary object whose value satisfies the above constraints, or if |
| 8007 | +a temporary object that satisfies the above constraints, or if |
8008 | 8008 | it is a non-immediate function.
|
8009 | 8009 | \begin{note}
|
8010 | 8010 | A glvalue core constant expression
|
|
0 commit comments