[v3 PATCH] PR libstdc++/78389
Ville Voutilainen
ville.voutilainen@gmail.com
Fri Jan 13 06:39:00 GMT 2017
On 13 January 2017 at 08:01, Tim Song <t.canens.cpp@gmail.com> wrote:
> On Thu, Jan 12, 2017 at 8:11 PM, Ville Voutilainen
> <ville.voutilainen@gmail.com> wrote:
>> This patch doesn't try to fix the reported sort() issue, because
>> a) it would require undoing a throwing move operation, which
>> is impossible.
>> b) in order to avoid the throwing move, we would need to add a
>> level of indirection and the scratch space for the indirect data
>> would need to be allocated.
>
> Wait, what throwing move? list::sort should be all splicing and no
> moving, unless I missed something.
It operates based on merge, which moves elements from one list to
another using a throwing
comparator. Undoing that operation is fairly tricky, because I don't
know where the merged
items landed. Splice is another move operation, but in case of splice,
I would know where
the items land, and it also doesn't throw, but merge does.
More information about the Libstdc++
mailing list