|
551 | 551 | between the point at which the entity is introduced and the scope |
552 | 552 | (where \tcode{*\keyword{this}} is considered to be introduced |
553 | 553 | within the innermost enclosing class or non-lambda function definition scope), |
554 | | -either: %JMB: Potential drive-by, we should remove the : and the first two "or"s. |
| 554 | +either |
555 | 555 | \begin{itemize} |
556 | | -\item the intervening scope is a block scope, or |
557 | | -\item the intervening scope is a contract-assertion scope\iref{basic.scope.contract}, or |
| 556 | +\item the intervening scope is a block scope, |
| 557 | +\item the intervening scope is a contract-assertion scope\iref{basic.scope.contract}, |
558 | 558 | \item the intervening scope is the function parameter scope of |
559 | 559 | a \grammarterm{lambda-expression} or \grammarterm{requires-expression}, or |
560 | 560 | \item the intervening scope is the lambda scope of |
|
6178 | 6178 | every argument expression and |
6179 | 6179 | the postfix expression designating \placeholder{f} |
6180 | 6180 | are sequenced before |
6181 | | -every precondition assertion of \placeholder{f}\iref{dcl.contract.func}, %JMB: This said "of the called function", changed to "of f" |
| 6181 | +every precondition assertion of \placeholder{f}\iref{dcl.contract.func}, |
6182 | 6182 | which in turn are sequenced before |
6183 | 6183 | every expression or statement |
6184 | 6184 | in the body of \placeholder{f}, |
6185 | 6185 | which in turn are sequenced before |
6186 | | -every postcondition assertion of \placeholder{f}. %JMB: This says "the called function" again in P2900 |
| 6186 | +every postcondition assertion of \placeholder{f}. |
6187 | 6187 |
|
6188 | 6188 | \pnum |
6189 | 6189 | For each |
|
7004 | 7004 | \pnum |
7005 | 7005 | \indextext{termination!program}% |
7006 | 7006 | \indextext{\idxcode{main} function!return from}% |
7007 | | -A \keyword{return} statement\iref{stmt.return} in \tcode{main} has the effect of leaving the main %JMB: Why is the second main here not in code font? |
| 7007 | +A \keyword{return} statement\iref{stmt.return} in \tcode{main} has the effect of leaving the \tcode{main} |
7008 | 7008 | function (destroying any objects with automatic storage duration |
7009 | 7009 | and evaluating any postcondition assertions of \tcode{main}) |
7010 | 7010 | and calling \tcode{std::exit} with the return value as the argument. |
|
7371 | 7371 | of the predicate of a contract assertion, |
7372 | 7372 | no diagnostic required. |
7373 | 7373 |
|
7374 | | -%JMB: This paragraph was not in P2900, but the note is not directly tied to the paragraph above. |
7375 | 7374 | \pnum |
7376 | 7375 | \begin{note} |
7377 | 7376 | Within the predicate of a contract assertion, |
7378 | 7377 | \grammarterm{id-expression}s referring to |
7379 | 7378 | variables declared outside the contract assertion |
7380 | | -are const\iref{expr.prim.id.unqual}, %JMB: P2900 had this const in code font |
7381 | | -\tcode{this} is a pointer to const\iref{expr.prim.this}, %JMB: P2900 had this const in code font |
| 7379 | +are const\iref{expr.prim.id.unqual}, |
| 7380 | +\tcode{this} is a pointer to const\iref{expr.prim.this}, |
7382 | 7381 | and the result object can be named |
7383 | 7382 | if a \grammarterm{result-name-introducer}\iref{dcl.contract.res} has been specified. |
7384 | 7383 | \end{note} |
|
0 commit comments