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