|
1283 | 1283 | If the expression \tcode{this}
|
1284 | 1284 | appears within the predicate of a contract assertion\iref{basic.contract.general}
|
1285 | 1285 | (including as the result of an implicit transformation\iref{expr.prim.id.general}
|
1286 |
| -and including in the bodies of nested \grammarterm{lambda-expression}s), |
| 1286 | +and including in the bodies of nested \grammarterm{lambda-expression}s), %JMB: I think this is hard to parse, and lori suggested removing the second comma. It's "If (X including Y) and Z then A" but we have "If X and Y, and Z, then A". Should we make this "If X (including Y) and Z, A" |
1287 | 1287 | and the current class
|
1288 | 1288 | encloses the contract assertion,
|
1289 | 1289 | \tcode{const} is combined with the \grammarterm{cv-qualifier-seq}
|
|
1418 | 1418 | bool b;
|
1419 | 1419 | C() pre(b) // error
|
1420 | 1420 | pre(&this->b) // OK
|
1421 |
| - pre(sizeof(b) > 0); // OK, \tcode{b} is not potentially evaluated |
| 1421 | + pre(sizeof(b) > 0); // OK, \tcode{b} is not potentially evaluated. |
1422 | 1422 | };
|
1423 | 1423 | \end{codeblock}
|
1424 | 1424 | \end{example}
|
|
1714 | 1714 | \pnum
|
1715 | 1715 | If an \grammarterm{id-expression} $E$
|
1716 | 1716 | appears in the predicate of
|
1717 |
| -a function contract assertion attached to a function \placeholder{f} |
| 1717 | +a function contract assertion attached to a function \placeholder{f} |
1718 | 1718 | and denotes
|
1719 |
| -a function parameter of \placeholder{f}, |
| 1719 | +a function parameter of \placeholder{f} |
1720 | 1720 | and the implementation introduces any temporary objects
|
1721 | 1721 | to hold the value of that parameter as specified in \ref{class.temporary},
|
1722 | 1722 | \begin{itemize}
|
|
1737 | 1737 | \pnum
|
1738 | 1738 | If an \grammarterm{id-expression} $E$
|
1739 | 1739 | names a result binding
|
1740 |
| -in a postcondition assertion, |
| 1740 | +in a postcondition assertion |
1741 | 1741 | and the implementation introduces any temporary objects
|
1742 | 1742 | to hold the result object as specified in \ref{class.temporary},
|
1743 | 1743 | and the postcondition assertion
|
|
3681 | 3681 | The initialization of a parameter or, %JMB: do we need a comma before the or too?
|
3682 | 3682 | if the implementation introduces any temporary objects
|
3683 | 3683 | to hold the values of function parameters\iref{class.temporary},
|
3684 |
| -the initializatoin of those temporaries, |
| 3684 | +the initialization of those temporaries, |
3685 | 3685 | including every associated value computation and side effect,
|
3686 | 3686 | is indeterminately sequenced with respect to that of any other parameter.
|
3687 | 3687 | These evaluations are
|
|
7868 | 7868 | the full-expression of its initialization is a constant expression
|
7869 | 7869 | when interpreted as a \grammarterm{constant-expression}
|
7870 | 7870 | with all contract assertions
|
7871 |
| -using the ignore evaluation semantic\iref{basic.contract.eval}, and %JMB: Should we reove this and, there are 3 bullets? |
| 7871 | +using the ignore evaluation semantic\iref{basic.contract.eval}, and %JMB: Should we remove this "and", there are 3 bullets? |
7872 | 7872 | \begin{note}
|
7873 | 7873 | Within this evaluation,
|
7874 | 7874 | \tcode{std::is_constant_evaluated()}\iref{meta.const.eval}
|
|
0 commit comments