|
553 | 553 | requirement applies recursively)\footnote{\ref{dcl.fct.default}
|
554 | 554 | describes how default argument names are looked up.}; and
|
555 | 555 |
|
| 556 | +\item if \tcode{D} invokes a function with a precondition, |
| 557 | +or is a function |
| 558 | +that contains an assertion or has a contract condition\iref{dcl.attr.contract}, |
| 559 | +it is \impldef{consistency of build level and violation continuation mode} |
| 560 | +under which conditions all definitions of \tcode{D} |
| 561 | +shall be translated using the same build level |
| 562 | +and violation continuation mode; and |
| 563 | + |
556 | 564 | \item if \tcode{D} is a class with an implicitly-declared
|
557 | 565 | constructor\iref{class.ctor}, it is as if the constructor was
|
558 | 566 | implicitly defined in every translation unit where it is odr-used, and the
|
|
984 | 992 | The potential scope of a name declared in a class consists not
|
985 | 993 | only of the declarative region following the name's point of
|
986 | 994 | declaration, but also of all function bodies, default arguments,
|
987 |
| -\grammarterm{noexcept-specifier}{s}, and |
988 |
| -default member initializers\iref{class.mem} |
| 995 | +\grammarterm{noexcept-specifier}{s}, |
| 996 | +default member initializers\iref{class.mem}, |
| 997 | +and contract conditions\iref{dcl.attr.contract} |
989 | 998 | in that class (including such
|
990 | 999 | things in nested classes).
|
991 | 1000 |
|
|
1330 | 1339 | A name used in the definition of a class \tcode{X} outside of a member
|
1331 | 1340 | function body, default argument, \grammarterm{noexcept-specifier},
|
1332 | 1341 | default member initializer\iref{class.mem},
|
| 1342 | +contract condition\iref{dcl.attr.contract}, |
1333 | 1343 | or nested class definition\footnote{This refers to unqualified names
|
1334 | 1344 | following the class name; such a name may be used in the
|
1335 | 1345 | \grammarterm{base-clause} or may be used in the class definition.}
|
|
1393 | 1403 | \end{note}
|
1394 | 1404 |
|
1395 | 1405 | \pnum
|
1396 |
| -For the members of a class \tcode{X}, a name used in a member function |
1397 |
| -body, in a default argument, in a \grammarterm{noexcept-specifier}, in a |
1398 |
| -default member initializer\iref{class.mem}, or in the definition of a class member |
1399 |
| -outside of the definition of \tcode{X}, following the |
1400 |
| -member's |
| 1406 | +For the members of a class \tcode{X}, a name used |
| 1407 | +in a member function body, |
| 1408 | +in a default argument, |
| 1409 | +in a \grammarterm{noexcept-specifier}, |
| 1410 | +in a default member initializer\iref{class.mem}, |
| 1411 | +in a contract condition\iref{dcl.attr.contract}, or |
| 1412 | +in the definition of a class member outside of the definition of \tcode{X}, |
| 1413 | +following the member's |
1401 | 1414 | \grammarterm{declarator-id}\footnote{That is, an unqualified name that occurs,
|
1402 | 1415 | for instance, in a
|
1403 | 1416 | type in the
|
|
0 commit comments