Fixed non-trivial copy assignment in "expected_move_assign_base"

This commit is contained in:
Kévin Alexandre Boissonneault
2017-12-02 22:06:07 -05:00
parent 5bed466a7e
commit 6a56887068

View File

@@ -710,14 +710,14 @@ struct expected_move_assign_base<T, E, false>
expected_move_assign_base(expected_move_assign_base &&rhs) = default; expected_move_assign_base(expected_move_assign_base &&rhs) = default;
expected_move_assign_base & expected_move_assign_base &
operator=(const expected_move_assign_base &rhs) noexcept( operator=(const expected_move_assign_base &rhs) = default;
std::is_nothrow_move_constructible<T>::value
&&std::is_nothrow_move_assignable<T>::value) {
this->assign(rhs);
return *this;
}
expected_move_assign_base & expected_move_assign_base &
operator=(expected_move_assign_base &&rhs) = default; operator=(expected_move_assign_base &&rhs) noexcept(
std::is_nothrow_move_constructible<T>::value
&&std::is_nothrow_move_assignable<T>::value) {
this->assign(std::move(rhs));
return *this;
}
}; };
// expected_delete_ctor_base will conditionally delete copy and move // expected_delete_ctor_base will conditionally delete copy and move