What do you assume when you see fromListN in a library?

Bardur Arantsson spam at scientician.net
Fri Feb 28 20:03:52 UTC 2020

On 28/02/2020 21.01, Bardur Arantsson wrote:
> On 28/02/2020 19.48, Oleg Grenrus wrote:
>>     std::vector<int> variantC;
>>     variantC.reserve(100);
>>     for (int i = 0; i < 100; i++) {
>>        primitive.push_back(f(i));
>>     }
>> I'm not a fan of changing `fromListN` to be partial function, but if
>> that change is carried on in `vector` there should be a variant which
>> allows to `reserve` without worrying about partiality.
>> - Oleg
> Interestingly, reserve actually is a size hint in the sense of "must be
> equal or greater than".

(Apogies for the self-reply, I fired that one off a bit early.)

That said, the expectation in C++ is the you *will* be mutating a
vector, so expecting further push_back(), etc. might be reasonable.

In 'vector', maybe not so much?


More information about the Libraries mailing list