Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[containers] Tentative P/R for [LWG4123] "Container effects use..." #7207

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 28 additions & 33 deletions source/containers.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6841,8 +6841,8 @@
implementation-specific optimizations.
\end{note}
If the size is equal to the old capacity, or
if an exception is thrown other than by the move constructor
of a non-\oldconcept{CopyInsertable} \tcode{T},
if an exception is thrown other than by
the move-construction of one object of non-\oldconcept{CopyInsertable} type \tcode{T} from another,
then there are no effects.

\pnum
Expand Down Expand Up @@ -6908,16 +6908,14 @@

\pnum
\remarks
If an exception is thrown other than by the
copy constructor, move constructor,
assignment operator, or move assignment operator of
\tcode{T},
If an exception is thrown other than by
the construction or assignment of one object of type \tcode{T} from another,
there are no effects.
If an exception is thrown while inserting a single element at either end,
there are no effects.
Otherwise, if an exception is thrown by the move constructor of a
non-\oldconcept{CopyInsertable}
\tcode{T}, the effects are unspecified.
Otherwise, if an exception is thrown by
the move-construction of one object of non-\oldconcept{CopyInsertable} type \tcode{T} from another,
the effects are unspecified.
\end{itemdescr}

\indexlibrarymember{erase}{deque}%
Expand All @@ -6943,8 +6941,8 @@

\pnum
\throws
Nothing unless an exception is thrown by the assignment operator of
\tcode{T}.
Nothing unless an exception is thrown by
the assignment of one object of type \tcode{T} from another.

\pnum
\complexity
Expand Down Expand Up @@ -8966,8 +8964,8 @@
otherwise.
Reallocation happens at this point if and only if the current capacity is less than the
argument of
\tcode{reserve()}. If an exception is thrown
other than by the move constructor of a non-\oldconcept{CopyInsertable} type,
\tcode{reserve()}. If an exception is thrown other than by
the move-construction of one object of non-\oldconcept{CopyInsertable} type \tcode{T} from another,
there are no effects.

\pnum
Expand Down Expand Up @@ -9017,8 +9015,9 @@
\end{note}
It does not increase \tcode{capacity()}, but may reduce \tcode{capacity()}
by causing reallocation.
If an exception is thrown other than by the move constructor
of a non-\oldconcept{CopyInsertable} \tcode{T}, there are no effects.
If an exception is thrown other than by
the move-construction of one object of non-\oldconcept{CopyInsertable} type \tcode{T} from another,
there are no effects.

\pnum
\complexity
Expand Down Expand Up @@ -9074,8 +9073,9 @@

\pnum
\remarks
If an exception is thrown other than by the move constructor of a non-\oldconcept{CopyInsertable}
\tcode{T}, there are no effects.
If an exception is thrown other than by
the move-construction of one object of non-\oldconcept{CopyInsertable} type \tcode{T} from another,
there are no effects.
\end{itemdescr}

\indexlibrarymember{resize}{vector}%
Expand Down Expand Up @@ -9161,15 +9161,15 @@
including the past-the-end iterator,
are invalidated.
If an exception is thrown other than by
the copy constructor, move constructor,
assignment operator, or move assignment operator of
\tcode{T} or by any \tcode{InputIterator} operation,
the construction or assignment of one object of type \tcode{T} from another,
or by any \tcode{InputIterator} operation,
there are no effects.
If an exception is thrown while inserting a single element at the end and
\tcode{T} is \oldconcept{CopyInsertable} or \tcode{is_nothrow_move_constructible_v<T>}
is \tcode{true}, there are no effects.
Otherwise, if an exception is thrown by the move constructor of a non-\oldconcept{CopyInsertable}
\tcode{T}, the effects are unspecified.
Otherwise, if an exception is thrown by
the move-construction of one object of non-\oldconcept{CopyInsertable} type \tcode{T} from another,
the effects are unspecified.
\end{itemdescr}

\indexlibrarymember{erase}{vector}%
Expand All @@ -9186,9 +9186,8 @@

\pnum
\throws
Nothing unless an exception is thrown by the
assignment operator or move assignment operator of
\tcode{T}.
Nothing unless an exception is thrown by
the construction or assignment of one object of type \tcode{T} from another.

\pnum
\complexity
Expand Down Expand Up @@ -9893,13 +9892,9 @@

\pnum
\remarks
If an exception is thrown other than by the
copy constructor,
move constructor,
assignment operator, or
move assignment operator
of \tcode{T} or by
any \tcode{InputIterator} operation,
If an exception is thrown other than by
the construction or assignment of one object of type \tcode{T} from another,
or by any \tcode{InputIterator} operation,
there are no effects.
Otherwise,
if an exception is thrown, then
Expand Down Expand Up @@ -10097,7 +10092,7 @@
\pnum
\throws
Nothing unless an exception is thrown by
the assignment operator or move assignment operator of \tcode{T}.
the assignment of one object of type \tcode{T} from another.

\pnum
\complexity
Expand Down
Loading