On 04/06/18 22:13 +0200, François Dumont wrote:
Hi

I'd like to propose this patch to avoid std::distance calls. In a number of situation in algos we already have the size of the buffer we need so we shouldn't have to compute it again.

Just one place, in __inplace_merge, no?

I don't think there is any abi concern for this inline constructor, isn't there ?

No concerns, users can't explicitly instantiate that type, and it will
be inlined or generate an instantiation everywhere it's used.

    * include/bits/stl_tempbuf.h
    (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
    (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
    * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
    * include/bits/stl_algo.h (__stable_partition): Adapt.
    (__inplace_merge): Adapt.
    (__stable_sort): Adapt.

Tested under Linux x86_64 normal mode.

Ok to commit ?

OK, thanks.


Reply via email to