[v3] More noexcept for vectors

Marc Glisse marc.glisse@inria.fr
Mon Sep 16 11:13:00 GMT 2013


On Mon, 16 Sep 2013, Paolo Carlini wrote:

> On 09/15/2013 11:12 AM, Marc Glisse wrote:
>> I had to separate the constructor that takes an allocator from the default 
>> constructor in debug/profile, since in release the noexcept only applies to 
>> one of them (and the testsuite asserts that release and debug agree on 
>> this). An alternative would be to make the release vector default 
>> constructor conditionally noexcept (depending on the allocator). Or to use 
>> explicit vector(const Allocator& = Allocator()); also in normal mode 
>> instead of splitting it in two.
> Thanks a lot. Now I'm wondering if we shouldn't really do the latter: the 
> issue is, if I remember correctly, in C++11, at variance with C++98, 
> allocators aren't necessarily default constructible, thus by explicit 
> instantiatiation the user can easily tell whether that constructor is split 
> or not. What do you think?

Shouldn't it just be illegal to explicitly instantiate a full class like 
std::vector?

But ok, I'll post that version as soon as I can test it.

-- 
Marc Glisse



More information about the Libstdc++ mailing list