forked from TartanLlama/optional
Bases fix
This commit is contained in:
@ -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
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user