GSL_vector& GSL_vector::operator=(GSL_vector&& rhs) noexcept { if (this != &rhs) { gsl_vector_free(vec); move_assign(std::move(rhs)); } return *this; }
void ProductType::move_assign_impl(void *dst, void *src) { for (int i = 0; i<n; ++i) { auto vt = cp[i]; auto align = vt->object_alignment(); src = round_up(src,align); dst = round_up(dst,align); vt->move_assign(dst,src); auto z = vt->object_size(); INCR(src, z); INCR(dst, z); } }
GSL_vector::GSL_vector(GSL_vector&& other) noexcept { move_assign(std::move(other)); }