template <class T, class U> constexpr bool operator==(const optional<T>& x, const U& v);
Requires: Выражение *x == v должно быть правильно сформированным, а его результат должен быть преобразован в bool. [ Note: T не должно быть EqualityComparable. ] — end note
template <class T, class U> constexpr bool operator==(const U& v, const optional<T>& x);
Requires: Выражение v == *x должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator!=(const optional<T>& x, const U& v);
Requires: Выражение *x != v должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator!=(const U& v, const optional<T>& x);
Requires: Выражение v != *x должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator<(const optional<T>& x, const U& v);
Requires: Выражение *x < v должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator<(const U& v, const optional<T>& x);
Requires: Выражение v < *x должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator<=(const optional<T>& x, const U& v);
Requires: Выражение *x <= v должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator<=(const U& v, const optional<T>& x);
Requires: Выражение v <= *x должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator>(const optional<T>& x, const U& v);
Requires: Выражение *x > v должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator>(const U& v, const optional<T>& x);
Requires: Выражение v > *x должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator>=(const optional<T>& x, const U& v);
Requires: Выражение *x >= v должно быть правильно сформированным, а его результат должен быть преобразован в bool.
template <class T, class U> constexpr bool operator>=(const U& v, const optional<T>& x);
Requires: Выражение v >= *x должно быть правильно сформированным, а его результат должен быть преобразован в bool.