Bases fix

This commit is contained in:
Simon Brand
2017-12-13 09:13:05 +00:00
parent 32656c4556
commit 6c73b8113f
2 changed files with 6 additions and 6 deletions

View File

@ -102,9 +102,6 @@ TEST_CASE("Deletion", "[bases.deletion]") {
}; };
REQUIRE(std::is_copy_constructible<tl::optional<T>>::value); REQUIRE(std::is_copy_constructible<tl::optional<T>>::value);
REQUIRE(std::is_copy_assignable<tl::optional<T>>::value); REQUIRE(std::is_copy_assignable<tl::optional<T>>::value);
//TODO see why this fails
//REQUIRE(!std::is_move_constructible<tl::optional<T>>::value);
//REQUIRE(!std::is_move_assignable<tl::optional<T>>::value);
} }
} }
#endif #endif

View File

@ -483,15 +483,18 @@ struct optional_move_assign_base<T, false> : optional_copy_assign_base<T> {
optional_move_assign_base(const optional_move_assign_base &rhs) = default; optional_move_assign_base(const optional_move_assign_base &rhs) = default;
optional_move_assign_base(optional_move_assign_base &&rhs) = default; optional_move_assign_base(optional_move_assign_base &&rhs) = default;
optional_move_assign_base & optional_move_assign_base &
operator=(const optional_move_assign_base &rhs) noexcept( operator=(const optional_move_assign_base &rhs) = default;
optional_move_assign_base &
operator=(optional_move_assign_base &&rhs) noexcept(
std::is_nothrow_move_constructible<T>::value std::is_nothrow_move_constructible<T>::value
&&std::is_nothrow_move_assignable<T>::value) { &&std::is_nothrow_move_assignable<T>::value) {
this->assign(std::move(rhs)); this->assign(std::move(rhs));
return *this; return *this;
} }
optional_move_assign_base &
operator=(optional_move_assign_base &&rhs) = default;
}; };
// optional_delete_ctor_base will conditionally delete copy and move // optional_delete_ctor_base will conditionally delete copy and move