Fix expected and unexpected comparison

p0323 currently contains a copy/paste error.
This commit is contained in:
Wu Yongwei
2018-01-13 16:12:55 +08:00
parent dea5274cd2
commit bf11ee6662

View File

@@ -1985,19 +1985,19 @@ constexpr bool operator!=(const U &v, const expected<T, E> &x) {
template <class T, class E> template <class T, class E>
constexpr bool operator==(const expected<T, E> &x, const unexpected<E> &e) { constexpr bool operator==(const expected<T, E> &x, const unexpected<E> &e) {
return x.has_value() ? true : x.error() == e.value(); return x.has_value() ? false : x.error() == e.value();
} }
template <class T, class E> template <class T, class E>
constexpr bool operator==(const unexpected<E> &e, const expected<T, E> &x) { constexpr bool operator==(const unexpected<E> &e, const expected<T, E> &x) {
return x.has_value() ? true : x.error() == e.value(); return x.has_value() ? false : x.error() == e.value();
} }
template <class T, class E> template <class T, class E>
constexpr bool operator!=(const expected<T, E> &x, const unexpected<E> &e) { constexpr bool operator!=(const expected<T, E> &x, const unexpected<E> &e) {
return x.has_value() ? false : x.error() != e.value(); return x.has_value() ? true : x.error() != e.value();
} }
template <class T, class E> template <class T, class E>
constexpr bool operator!=(const unexpected<E> &e, const expected<T, E> &x) { constexpr bool operator!=(const unexpected<E> &e, const expected<T, E> &x) {
return x.has_value() ? false : x.error() != e.value(); return x.has_value() ? true : x.error() != e.value();
} }
// TODO is_swappable // TODO is_swappable