Bug 1781222 - Allow moving dom::Optional<>. r=edgar

This will be useful for bug 1775062.

Differential Revision: https://phabricator.services.mozilla.com/D152738
This commit is contained in:
Emilio Cobos Álvarez 2022-07-26 14:08:17 +00:00
Родитель ec58d0cfd5
Коммит f0b9ca55d6
1 изменённых файлов: 5 добавлений и 0 удалений

Просмотреть файл

@ -156,7 +156,11 @@ class Optional_base {
public:
Optional_base() = default;
Optional_base(Optional_base&&) = default;
Optional_base& operator=(Optional_base&&) = default;
explicit Optional_base(const T& aValue) { mImpl.emplace(aValue); }
explicit Optional_base(T&& aValue) { mImpl.emplace(std::move(aValue)); }
bool operator==(const Optional_base<T, InternalType>& aOther) const {
return mImpl == aOther.mImpl;
@ -209,6 +213,7 @@ class Optional : public Optional_base<T, T> {
MOZ_ALLOW_TEMPORARY Optional() : Optional_base<T, T>() {}
explicit Optional(const T& aValue) : Optional_base<T, T>(aValue) {}
Optional(Optional&&) = default;
};
template <typename T>