Relocation (= move+destroy)

Jonathan Wakely jwakely@redhat.com
Sun Sep 2 20:03:00 GMT 2018


On 01/09/18 21:56 +0200, Marc Glisse wrote:
>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 

I think you can break it. I'll look back over the history of the test
case, but I don't think supporting deleted moves is intended.


>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.

Agreed.




More information about the Gcc-patches mailing list