https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
Jonathan Wakely changed:
What|Removed |Added
CC||dan.raviv at gmail dot com
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
Jonathan Wakely changed:
What|Removed |Added
CC||lemo1234 at gmail dot com
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #14 from Jonathan Wakely ---
(In reply to Daniel Krügler from comment #11)
> (In reply to Jonathan Wakely from comment #10)
> > Perhaps Daniel can comment, since he wrote the resolution of lwg 2033.
> >
> > Daniel, if the intent was
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #13 from Daniel Trebbien ---
(In reply to Jonathan Wakely from comment #9)
> Also, if boost::optional had a noexcept move constructor it would work fine.
> This is a boost bug.
>
> The part of the patch addressing PR 83982 seems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #12 from Daniel Trebbien ---
https://wg21.link/lwg2158 looks relevant, particularly this part:
"This requirement is not sufficient if an implementation is free to select copy
constructor when !is_nothrow_move_constructible::value &&
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #11 from Daniel Krügler ---
(In reply to Jonathan Wakely from comment #10)
> Perhaps Daniel can comment, since he wrote the resolution of lwg 2033.
>
> Daniel, if the intent was that vector::resize(size_type) must only move,
> even
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #10 from Jonathan Wakely ---
(In reply to Jonathan Wakely from comment #8)
> I don't think your patch is correct. The whole point of the "move if
> noexcept" utilities is that they handle this correctly. If the type is
> nothrow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #9 from Jonathan Wakely ---
Also, if boost::optional had a noexcept move constructor it would work fine.
This is a boost bug.
The part of the patch addressing PR 83982 seems right.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #8 from Jonathan Wakely ---
I don't think your patch is correct. The whole point of the "move if noexcept"
utilities is that they handle this correctly. If the type is nothrow movable,
then move. Otherwise if it is copyable, then
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #7 from Daniel Trebbien ---
So as not to break testsuite/23_containers/vector/capacity/resize/moveable2.cc
for C++11, I decided that it would be best to keep the use of
std::__uninitialized_move_if_noexcept_a() when compiling as
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #6 from Daniel Trebbien ---
Created attachment 43243
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43243=edit
Patch for PR 83981 and PR 83982
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #5 from Daniel Trebbien ---
I have run into a small issue. C++11 apparently does not provide an exception
guarantee on vector::resize(size_type), whereas in C++14, the exception
guarantee is "If an exception is thrown other than by
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #4 from Jonathan Wakely ---
That would be welcome.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #3 from Daniel Trebbien ---
I would like to make a patch for this and PR 83982 if that's okay.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
--- Comment #2 from Jonathan Wakely ---
https://wg21.link/lwg2033 changed the requirements.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981
Jonathan Wakely changed:
What|Removed |Added
Keywords||rejects-valid
16 matches
Mail list logo