|
5053 | 5053 |
|
5054 | 5054 | \rSec3[expr.unary.noexcept]{\tcode{noexcept} operator}
|
5055 | 5055 |
|
5056 |
| -\pnum |
5057 | 5056 | \indextext{\idxcode{noexcept}}%
|
5058 | 5057 | \indextext{expression!\idxcode{noexcept}}%
|
5059 |
| -The \keyword{noexcept} operator determines whether the evaluation of its operand, |
5060 |
| -which is an unevaluated operand\iref{term.unevaluated.operand}, can throw an |
5061 |
| -exception\iref{except.throw}. |
5062 | 5058 |
|
5063 | 5059 | \begin{bnf}
|
5064 | 5060 | \nontermdef{noexcept-expression}\br
|
5065 | 5061 | \keyword{noexcept} \terminal{(} expression \terminal{)}
|
5066 | 5062 | \end{bnf}
|
5067 | 5063 |
|
| 5064 | +\pnum |
| 5065 | +The operand of the \keyword{noexcept} operator |
| 5066 | +is an unevaluated operand\iref{expr.context}. |
| 5067 | +If the operand is a prvalue, |
| 5068 | +the temporary materialization conversion\iref{conv.rval} is applied. |
| 5069 | + |
5068 | 5070 | \pnum
|
5069 | 5071 | The result of the \keyword{noexcept} operator is a prvalue of type \keyword{bool}.
|
| 5072 | +The result is \tcode{false} if |
| 5073 | +the full-expression of the operand is potentially-throwing\iref{except.spec}, and |
| 5074 | +\tcode{true} otherwise. |
5070 | 5075 | \begin{note}
|
5071 | 5076 | A \grammarterm{noexcept-expression}
|
5072 | 5077 | is an integral constant expression\iref{expr.const}.
|
5073 | 5078 | \end{note}
|
5074 |
| - |
5075 |
| -\pnum |
5076 |
| -If the operand is a prvalue, |
5077 |
| -the temporary materialization conversion\iref{conv.rval} is applied. |
5078 |
| -The result of the \keyword{noexcept} operator is \keyword{true} |
5079 |
| -unless the full-expression of the operand |
5080 |
| -is potentially-throwing\iref{except.spec}. |
5081 | 5079 | \indextext{expression!unary|)}
|
5082 | 5080 |
|
5083 | 5081 | \rSec3[expr.new]{New}
|
|
0 commit comments