| 216 | |
| 217 | template <class T, class U> |
| 218 | inline bool operator<(const optional<T>& lhs, const optional<U>& rhs) { |
| 219 | if (!rhs.has_value()) { |
| 220 | return false; |
| 221 | } |
| 222 | if (!lhs.has_value()) { |
| 223 | return true; |
| 224 | } |
| 225 | return lhs.value() < rhs.value(); |
| 226 | } |
| 227 | |
| 228 | template <class T, class U> |
| 229 | inline bool operator<=(const optional<T>& lhs, const optional<U>& rhs) { |