23 General utilities library [utilities]
template <class T, class U> constexpr bool operator==(const optional<T>& x, const U& v);
Requires:
The expression
*x == v shall be well-formed and
its result shall be convertible to
bool. [
Note: T need not be
EqualityComparable. —
end note ]
Effects:
Equivalent to: return bool(x) ? *x == v : false;
template <class T, class U> constexpr bool operator==(const U& v, const optional<T>& x);
Requires:
The expression
v == *x shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? v == *x : false;
template <class T, class U> constexpr bool operator!=(const optional<T>& x, const U& v);
Requires:
The expression
*x != v shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? *x != v : true;
template <class T, class U> constexpr bool operator!=(const U& v, const optional<T>& x);
Requires:
The expression
v != *x shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? v != *x : true;
template <class T, class U> constexpr bool operator<(const optional<T>& x, const U& v);
Requires:
The expression
*x < v shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? *x < v : true;
template <class T, class U> constexpr bool operator<(const U& v, const optional<T>& x);
Requires:
The expression
v < *x shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? v < *x : false;
template <class T, class U> constexpr bool operator<=(const optional<T>& x, const U& v);
Requires:
The expression
*x <= v shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? *x <= v : true;
template <class T, class U> constexpr bool operator<=(const U& v, const optional<T>& x);
Requires:
The expression
v <= *x shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? v <= *x : false;
template <class T, class U> constexpr bool operator>(const optional<T>& x, const U& v);
Requires:
The expression
*x > v shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? *x > v : false;
template <class T, class U> constexpr bool operator>(const U& v, const optional<T>& x);
Requires:
The expression
v > *x shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? v > *x : true;
template <class T, class U> constexpr bool operator>=(const optional<T>& x, const U& v);
Requires:
The expression
*x >= v shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? *x >= v : false;
template <class T, class U> constexpr bool operator>=(const U& v, const optional<T>& x);
Requires:
The expression
v >= *x shall be well-formed and
its result shall be convertible to
bool. Effects:
Equivalent to: return bool(x) ? v >= *x : true;