Lines Matching refs:__lhs
795 static void __generic_construct(__constructor& __lhs, _Rhs&& __rhs) {
796 __lhs.__destroy();
805 __lhs, _VSTD::forward<_Rhs>(__rhs));
806 __lhs.__index = __rhs.index();
1060 __impl* __lhs = this;
1062 if (__lhs->__move_nothrow() && !__rhs->__move_nothrow()) {
1063 _VSTD::swap(__lhs, __rhs);
1067 // EXTENSION: When the move construction of `__lhs` into `__rhs` throws
1071 this->__generic_construct(*__rhs, _VSTD::move(*__lhs));
1079 this->__generic_construct(*__rhs, _VSTD::move(*__lhs));
1081 this->__generic_construct(*__lhs, _VSTD::move(__tmp));
1463 constexpr bool operator==(const variant<_Types...>& __lhs,
1466 if (__lhs.index() != __rhs.index()) return false;
1467 if (__lhs.valueless_by_exception()) return true;
1468 return __variant::__visit_value_at(__lhs.index(), __convert_to_bool<equal_to<>>{}, __lhs, __rhs);
1473 constexpr bool operator!=(const variant<_Types...>& __lhs,
1476 if (__lhs.index() != __rhs.index()) return true;
1477 if (__lhs.valueless_by_exception()) return false;
1479 __lhs.index(), __convert_to_bool<not_equal_to<>>{}, __lhs, __rhs);
1484 constexpr bool operator<(const variant<_Types...>& __lhs,
1488 if (__lhs.valueless_by_exception()) return true;
1489 if (__lhs.index() < __rhs.index()) return true;
1490 if (__lhs.index() > __rhs.index()) return false;
1491 return __variant::__visit_value_at(__lhs.index(), __convert_to_bool<less<>>{}, __lhs, __rhs);
1496 constexpr bool operator>(const variant<_Types...>& __lhs,
1499 if (__lhs.valueless_by_exception()) return false;
1501 if (__lhs.index() > __rhs.index()) return true;
1502 if (__lhs.index() < __rhs.index()) return false;
1503 return __variant::__visit_value_at(__lhs.index(), __convert_to_bool<greater<>>{}, __lhs, __rhs);
1508 constexpr bool operator<=(const variant<_Types...>& __lhs,
1511 if (__lhs.valueless_by_exception()) return true;
1513 if (__lhs.index() < __rhs.index()) return true;
1514 if (__lhs.index() > __rhs.index()) return false;
1516 __lhs.index(), __convert_to_bool<less_equal<>>{}, __lhs, __rhs);
1521 constexpr bool operator>=(const variant<_Types...>& __lhs,
1525 if (__lhs.valueless_by_exception()) return false;
1526 if (__lhs.index() > __rhs.index()) return true;
1527 if (__lhs.index() < __rhs.index()) return false;
1529 __lhs.index(), __convert_to_bool<greater_equal<>>{}, __lhs, __rhs);
1569 auto swap(variant<_Types...>& __lhs,
1570 variant<_Types...>& __rhs) noexcept(noexcept(__lhs.swap(__rhs)))
1571 -> decltype(__lhs.swap(__rhs)) {
1572 __lhs.swap(__rhs);