Relocation (= move+destroy)
Marc Glisse
marc.glisse@inria.fr
Sat Sep 1 19:56:00 GMT 2018
On Sat, 1 Sep 2018, Marc Glisse wrote:
> this patch passed bootstrap+regtest on powerpc64le-unknown-linux-gnu.
I realized afterwards that for a C++17-only feature, that's not testing
much... So I changed it to apply in C++14 and fixed a minor issue. There
is now a single regression:
23_containers/vector/modifiers/push_back/49836.cc
The PR was about not using assignment for an operation that should only
use construction, and that's fine. But we ended up with a stricter
testcase using CopyConsOnlyType, where the type has a deleted move
constructor which, as far as I understand the standard, makes it an
invalid type for use in vector::push_back. Is that something we want to
keep supporting, or may I break it? What is happening is that the
definition of __use_relocate asks if some expression involving a move of
_Tp is noexcept, which causes a hard error. It would certainly be possible
to work around that, but it would complicate the code and seems quite
pointless to me.
--
Marc Glisse
-------------- next part --------------
A non-text attachment was scrubbed...
Name: reloc-w.patch
Type: text/x-diff
Size: 22603 bytes
Desc:
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20180901/bb58256e/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: reloc.patch
Type: text/x-diff
Size: 23836 bytes
Desc:
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20180901/bb58256e/attachment-0001.bin>
More information about the Libstdc++
mailing list