Boost logo

Boost :

Subject: Re: [boost] Variadic append for std::string
From: Nat Goodspeed (nat_at_[hidden])
Date: 2016-12-28 19:43:27


On Dec 28, 2016 7:20 PM, "Yakov Galka" <ybungalobill_at_[hidden]> wrote:

On Tue, Dec 27, 2016 at 4:47 PM, Olaf van der Spek <ml_at_[hidden]> wrote:

> One frequently needs to append stuff to strings, but the standard way
> (s += "A" + "B" + to_string(42)) isn't optimal due to temporaries.
>

Can't we already write it through (((s += "A") += "B") += to_string(42))?
This is the time I think that assignment operators, other than =, should
have had left associativitiy... pity they don't.

I think what's desired here is a two-pass approach in which append() or
concat() or whatever first figures out the final length required, allocates
that much storage, then appends into it with no further expansion.

When we say it should understand two kinds of string_view, etc., I assume
that the catch-all case for each arg would be "anything that can be treated
as a range of char_type."


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk