[Bug libstdc++/52745] GCC4.7 vector uses copy instead of move constructor

J.W.Rogers+gcc at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Mar 27 23:30:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745

--- Comment #4 from Jonathan Rogers <J.W.Rogers+gcc at gmail dot com> 2012-03-27 23:25:45 UTC ---
(In reply to comment #3)
> Otherwise, if the move constructor by chance throws, the push_back cannot have
> no effects, as required by 23.2.1/10. Actually the requirement holds for all
> the containers, but only std::vector implements it in 4.7, the other containers
> (I *think* only std::deque needs work) will follow.

In my example code, if you comment out the copy constructor (leaving only the
move constructor) then vector will use the (potentially throwing) move
constructor.

If what you say is the case, shouldn't vector refuse to use the move
constructor?



More information about the Gcc-bugs mailing list