|
150 | 150 | A declaration of an entity or \grammarterm{typedef-name} $X$ is
|
151 | 151 | a redeclaration of $X$
|
152 | 152 | if another declaration of $X$ is reachable from it\iref{module.reach};
|
153 |
| -otherwise it is a \defnadj{first}{declaration}. |
| 153 | +otherwise, it is a \defnadj{first}{declaration}. |
154 | 154 | A declaration may also have effects including:
|
155 | 155 | \begin{itemize}
|
156 | 156 | \item a static assertion\iref{dcl.pre},
|
|
895 | 895 | \grammarterm{handler}, or
|
896 | 896 | contract assertion
|
897 | 897 | (as described in the following subclauses of \ref{basic.scope})
|
898 |
| -appearing in another scope which thereby contains $S$. |
| 898 | +appearing in another scope, which thereby contains $S$. |
899 | 899 | An \defnadj{enclosing}{scope} at a program point is any scope that contains it;
|
900 | 900 | the smallest such scope is said to be the \defnadj{immediate}{scope}
|
901 | 901 | at that point.
|
|
4521 | 4521 | if \tcode{X} is
|
4522 | 4522 | \begin{itemize}
|
4523 | 4523 | \item
|
4524 |
| -a scalar type, or |
| 4524 | +a scalar type or |
4525 | 4525 | \item
|
4526 | 4526 | a class type that
|
4527 | 4527 | has at least one eligible copy or move constructor\iref{special},
|
|
7404 | 7404 | for any given evaluation of a contract assertion.
|
7405 | 7405 | \begin{note}
|
7406 | 7406 | The range and flexibility of available choices of
|
7407 |
| -evaluation semantics depends on the implementation, |
| 7407 | +evaluation semantics depends on the implementation |
7408 | 7408 | and need not allow all four evaluation semantics as possibilities.
|
7409 | 7409 | The evaluation semantics can differ
|
7410 | 7410 | for different evaluations of the same contract assertion,
|
|
7440 | 7440 | To determine whether a predicate would evaluate
|
7441 | 7441 | to \keyword{true} or \keyword{false},
|
7442 | 7442 | an alternative evaluation
|
7443 |
| -that produces the same value as the predicate, |
7444 |
| -but has no side effects, |
| 7443 | +that produces the same value as the predicate |
| 7444 | +but has no side effects |
7445 | 7445 | can occur.
|
7446 | 7446 | \begin{example}
|
7447 | 7447 | \begin{codeblock}
|
|
7452 | 7452 | pre(( s.g++, false )); // \#1
|
7453 | 7453 | void g()
|
7454 | 7454 | {
|
7455 |
| - f(); // Increment of \tcode{s.g} might not occur, even if \#1 uses a checking semantic |
| 7455 | + f(); // Increment of \tcode{s.g} might not occur, even if \#1 uses a checking semantic. |
7456 | 7456 | }
|
7457 | 7457 | \end{codeblock}
|
7458 | 7458 | \end{example}
|
|
7553 | 7553 | \tcode{std::terminate} or \tcode{std::abort}
|
7554 | 7554 | without actually making a library call
|
7555 | 7555 | is a conforming implementation of
|
7556 |
| -contract-terminating\iref{intro.abstract}. |
| 7556 | +contract-termination\iref{intro.abstract}. |
7557 | 7557 | \end{note}
|
7558 | 7558 |
|
7559 | 7559 | \pnum
|
|
7572 | 7572 | If a contract violation occurs
|
7573 | 7573 | in a context that is not manifestly constant-evaluated
|
7574 | 7574 | and the evaluation semantic is enforce or observe,
|
7575 |
| -the contract-violation handle\iref{basic.contract.handler} |
| 7575 | +the contract-violation handler\iref{basic.contract.handler} |
7576 | 7576 | is invoked with an lvalue referring to
|
7577 | 7577 | an object \tcode{v}
|
7578 | 7578 | of type \tcode{const std::contracts::contract_violation}\iref{support.contract.violation}
|
|
7638 | 7638 | the enforce semantic provides the opportunity to
|
7639 | 7639 | log information about the contract violation
|
7640 | 7640 | before terminating the program
|
7641 |
| -or throw an exception to avoid termination, |
| 7641 | +or to throw an exception to avoid termination, |
7642 | 7642 | and the quick-enforce semantic is intended
|
7643 | 7643 | to terminate the program as soon as possible
|
7644 | 7644 | as well as
|
|
0 commit comments