Skip to content

Commit c0fec2c

Browse files
committed
Merge 2018-06 CWG Motion 14
2 parents f39c107 + 001a201 commit c0fec2c

File tree

10 files changed

+614
-16
lines changed

10 files changed

+614
-16
lines changed

source/basic.tex

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,14 @@
553553
requirement applies recursively)\footnote{\ref{dcl.fct.default}
554554
describes how default argument names are looked up.}; and
555555

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+
556564
\item if \tcode{D} is a class with an implicitly-declared
557565
constructor\iref{class.ctor}, it is as if the constructor was
558566
implicitly defined in every translation unit where it is odr-used, and the
@@ -984,8 +992,9 @@
984992
The potential scope of a name declared in a class consists not
985993
only of the declarative region following the name's point of
986994
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}
989998
in that class (including such
990999
things in nested classes).
9911000

@@ -1330,6 +1339,7 @@
13301339
A name used in the definition of a class \tcode{X} outside of a member
13311340
function body, default argument, \grammarterm{noexcept-specifier},
13321341
default member initializer\iref{class.mem},
1342+
contract condition\iref{dcl.attr.contract},
13331343
or nested class definition\footnote{This refers to unqualified names
13341344
following the class name; such a name may be used in the
13351345
\grammarterm{base-clause} or may be used in the class definition.}
@@ -1393,11 +1403,14 @@
13931403
\end{note}
13941404

13951405
\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
14011414
\grammarterm{declarator-id}\footnote{That is, an unqualified name that occurs,
14021415
for instance, in a
14031416
type in the

source/classes.tex

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,8 +563,9 @@
563563
Within the class
564564
\grammarterm{member-specification}, the class is regarded as complete
565565
within function bodies, default arguments,
566-
\grammarterm{noexcept-specifier}{s}, and
567-
default member initializers
566+
\grammarterm{noexcept-specifier}{s},
567+
default member initializers, and
568+
contract conditions\iref{dcl.attr.contract}
568569
(including such things in nested classes).
569570
Otherwise it is regarded as incomplete within its own class
570571
\grammarterm{member-specification}.

0 commit comments

Comments
 (0)