Skip to content

Commit 8ca6219

Browse files
authored
Merge pull request #2193 from cplusplus/motions-2018-06-lwg-11
P1082R0 LWG Issues to be moved in Rapperswil (except issue 3071)
2 parents a8c41a9 + e33f7fa commit 8ca6219

10 files changed

+255
-132
lines changed

source/algorithms.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -1550,7 +1550,7 @@
15501550

15511551
\pnum
15521552
Parallel algorithms shall not participate in overload resolution unless
1553-
\tcode{is_execution_policy_v<decay_t<ExecutionPolicy>>} is \tcode{true}.
1553+
\tcode{is_execution_policy_v<remove_cvref_t<ExecutionPolicy>>} is \tcode{true}.
15541554

15551555
\rSec1[alg.nonmodifying]{Non-modifying sequence operations}
15561556

source/containers.tex

+7-7
Original file line numberDiff line numberDiff line change
@@ -9750,7 +9750,12 @@
97509750
the program is ill-formed.
97519751

97529752
\pnum
9753-
The iterator type for span is a random access iterator and a contiguous iterator.
9753+
The iterator types \tcode{span::iterator} and \tcode{span::const_iterator} are
9754+
random access iterators\iref{random.access.iterators},
9755+
contiguous iterators\iref{iterator.requirements.general}, and
9756+
constexpr iterators\iref{iterator.requirements.general}.
9757+
All requirements on container iterators\iref{container.requirements} apply to
9758+
\tcode{span::iterator} and \tcode{span::const_iterator} as well.
97549759

97559760
\pnum
97569761
All member functions of \tcode{span} have constant time complexity.
@@ -9854,10 +9859,6 @@
98549859
constexpr span() noexcept;
98559860
\end{itemdecl}
98569861
\begin{itemdescr}
9857-
\pnum
9858-
\effects
9859-
Constructs an empty \tcode{span}.
9860-
98619862
\pnum
98629863
\postconditions
98639864
\tcode{size() == 0 \&\& data() == nullptr}.
@@ -9881,12 +9882,12 @@
98819882
\pnum
98829883
\effects
98839884
Constructs a \tcode{span} that is a view over the range \range{ptr}{ptr + count}.
9884-
If \tcode{count} is 0 then an empty span is constructed.
98859885

98869886
\pnum
98879887
\postconditions
98889888
\tcode{size() == count \&\& data() == ptr}.
98899889

9890+
\pnum
98909891
\throws
98919892
Nothing.
98929893
\end{itemdescr}
@@ -9905,7 +9906,6 @@
99059906
\pnum
99069907
\effects
99079908
Constructs a span that is a view over the range \range{first}{last}.
9908-
If \tcode{last - first == 0} then an empty \tcode{span} is constructed.
99099909

99109910
\pnum
99119911
\postconditions

source/diagnostics.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,7 @@
918918

919919
\pnum
920920
The \tcode{is_error_code_enum} and \tcode{is_error_condition_enum} may be
921-
specialized for user-defined types to indicate that such types are eligible
921+
specialized for program-defined types to indicate that such types are eligible
922922
for \tcode{class error_code} and \tcode{class error_condition} automatic
923923
conversions, respectively.
924924

source/iostreams.tex

+16-6
Original file line numberDiff line numberDiff line change
@@ -1436,6 +1436,10 @@
14361436
\end{itemdecl}
14371437

14381438
\begin{itemdescr}
1439+
\pnum
1440+
\requires
1441+
\tcode{idx} is a value obtained by a call to \tcode{xalloc}.
1442+
14391443
\pnum
14401444
\effects
14411445
If \tcode{iarray} is a null pointer, allocates an array of
@@ -1482,6 +1486,10 @@
14821486
\end{itemdecl}
14831487

14841488
\begin{itemdescr}
1489+
\pnum
1490+
\requires
1491+
\tcode{idx} is a value obtained by a call to \tcode{xalloc}.
1492+
14851493
\pnum
14861494
\effects
14871495
If \tcode{parray} is a null pointer, allocates an array of
@@ -14337,6 +14345,11 @@
1433714345
Otherwise, cease iteration of the directory currently being
1433814346
iterated over, and continue iteration over the parent directory.
1433914347

14348+
\pnum
14349+
\postconditions Any copies of the previous value of \tcode{*this}
14350+
are no longer required
14351+
either to be dereferenceable or to be in the domain of \tcode{==}.
14352+
1434014353
\pnum
1434114354
\throws As specified in~\ref{fs.err.report}.
1434214355
\end{itemdescr}
@@ -14795,21 +14808,18 @@
1479514808

1479614809
\begin{itemdescr}
1479714810
\pnum
14798-
\effects Establishes the postcondition by attempting to create the
14811+
\effects Creates the
1479914812
directory \tcode{p} resolves to, with
1480014813
attributes copied from directory \tcode{existing_p}. The set of attributes
14801-
copied is operating system dependent. Creation failure because \tcode{p} resolves to an existing directory shall not be
14802-
treated as an error.
14814+
copied is operating system dependent.
14815+
Creation failure because \tcode{p} already exists is not an error.
1480314816
\begin{note} For POSIX-based operating systems, the
1480414817
attributes are those copied by native API \tcode{stat(existing_p.c_str(), \&attributes_stat)}
1480514818
followed by \tcode{mkdir(p.c_str(), attributes_stat.st_mode)}. For
1480614819
Windows-based operating systems, the attributes are those copied by native
1480714820
API \tcode{CreateDirectoryExW(existing_p.c_str(), p.c_str(), 0)}.
1480814821
\end{note}
1480914822

14810-
\pnum
14811-
\postconditions \tcode{is_directory(p)}.
14812-
1481314823
\pnum
1481414824
\returns \tcode{true} if a new directory was created, otherwise \tcode{false}.
1481514825
The signature with argument \tcode{ec} returns \tcode{false} if an error occurs.

source/lib-intro.tex

+20-2
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,24 @@
283283
member functions\iref{class.this}.
284284
\end{defnote}
285285

286+
\definition{program-defined specialization}{defns.prog.def.spec}
287+
\indexdefn{specialization!program-defined}%
288+
explicit template specialization or partial specialization
289+
that is not part of the C++ standard library and
290+
not defined by the implementation
291+
292+
\definition{program-defined type}{defns.prog.def.type}
293+
\indexdefn{type!program-defined}%
294+
class type or enumeration type
295+
that is not part of the C++ standard library and
296+
not defined by the implementation,
297+
or an instantiation of a program-defined specialization
298+
299+
\begin{defnote}
300+
Types defined by the implementation include
301+
extensions\iref{intro.compliance} and internal types used by the library.
302+
\end{defnote}
303+
286304
\definition{referenceable type}{defns.referenceable}
287305
\indexdefn{type!referenceable}%
288306
type that is either an
@@ -2169,7 +2187,7 @@
21692187
to namespace
21702188
\tcode{std} provided that
21712189
(a) the added declaration
2172-
depends on at least one user-defined type
2190+
depends on at least one program-defined type
21732191
and
21742192
(b) the specialization meets the standard library requirements
21752193
for the original template.\footnote{Any
@@ -2202,7 +2220,7 @@
22022220
A program may explicitly instantiate
22032221
a class template defined in the standard library
22042222
only if the declaration
2205-
(a) depends on the name of at least one user-defined type
2223+
(a) depends on the name of at least one program-defined type
22062224
and
22072225
(b) the instantiation meets the standard library requirements for the
22082226
original template.

source/locales.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -1908,7 +1908,7 @@
19081908
Specializations on
19091909
\tcode{mbstate_t}
19101910
perform conversion between encodings known to the library implementer.
1911-
Other encodings can be converted by specializing on a user-defined
1911+
Other encodings can be converted by specializing on a program-defined
19121912
\tcode{stateT}
19131913
type.
19141914
Objects of type

0 commit comments

Comments
 (0)