[Bug libstdc++/55043] [4.7/4.8 Regression] issue with nesting unordered_map containing unique_ptr into vector
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Oct 24 20:04:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55043
--- Comment #20 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-10-24 20:03:52 UTC ---
It's conforming for unordered_map to have a possibly-throwing move ctor, but it
must be possible to insert it into a vector, because vector::emplace_back
doesn't require copyconstructible, and doesn't require nothrow
moveconstructible
The bug is that we "detect" the type is copyconstructible when it isn't really.
So I think specializing std::is_copy_constructible to depend on the allocator
and value type makes sense. I've implemented it and it works.
That said, I think a non-allocating default ctor and move ctor would also be
better. Allocation should happen on insertion, which could test whether there
are already buckets or not
More information about the Gcc-bugs
mailing list