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

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Maybe like this...

index 3638a8c..2cedd39 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -1433,7 +1433,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       void
       _M_move_assign(vector&& __x, std::true_type) noexcept
       {
-       const vector __tmp(std::move(*this), get_allocator());
+       vector __tmp(get_allocator());
+       this->_M_impl._M_swap_data(__tmp._M_impl);
        this->_M_impl._M_swap_data(__x._M_impl);
        if (_Alloc_traits::_S_propagate_on_move_assign())
          std::__alloc_on_move(_M_get_Tp_allocator(),

Reply via email to