<beman/optional/optional.hpp>
template<class T> constexpr void swap( optional<T>& x, optional<T>& y) noexcept(noexcept(lhs.swap(rhs))) requires std::is_move_constructible_v<T> && std::is_swappable_v<T>;