@@ -1647,32 +1647,6 @@ constexpr _Ret visit(_Callable&& _Obj, _Variants&&... _Args) {
1647
1647
}
1648
1648
#endif // _HAS_CXX20
1649
1649
1650
- _EXPORT_STD _NODISCARD constexpr bool operator==(monostate, monostate) noexcept {
1651
- return true;
1652
- }
1653
-
1654
- #if _HAS_CXX20
1655
- _EXPORT_STD _NODISCARD constexpr strong_ordering operator<=>(monostate, monostate) noexcept {
1656
- return strong_ordering::equal;
1657
- }
1658
- #else // ^^^ _HAS_CXX20 / !_HAS_CXX20 vvv
1659
- _NODISCARD constexpr bool operator!=(monostate, monostate) noexcept {
1660
- return false;
1661
- }
1662
- _NODISCARD constexpr bool operator<(monostate, monostate) noexcept {
1663
- return false;
1664
- }
1665
- _NODISCARD constexpr bool operator>(monostate, monostate) noexcept {
1666
- return false;
1667
- }
1668
- _NODISCARD constexpr bool operator<=(monostate, monostate) noexcept {
1669
- return true;
1670
- }
1671
- _NODISCARD constexpr bool operator>=(monostate, monostate) noexcept {
1672
- return true;
1673
- }
1674
- #endif // ^^^ !_HAS_CXX20 ^^^
1675
-
1676
1650
_EXPORT_STD template <class... _Types,
1677
1651
enable_if_t<conjunction_v<is_move_constructible<_Types>..., is_swappable<_Types>...>, int> = 0>
1678
1652
_CONSTEXPR20 void swap(variant<_Types...>& _Left, variant<_Types...>& _Right) noexcept(noexcept(_Left.swap(_Right))) {
@@ -1702,16 +1676,6 @@ struct hash<variant<_Types...>> : _Conditionally_enabled_hash<variant<_Types...>
1702
1676
}
1703
1677
};
1704
1678
1705
- template <>
1706
- struct hash<monostate> {
1707
- using _ARGUMENT_TYPE_NAME _CXX17_DEPRECATE_ADAPTOR_TYPEDEFS = monostate;
1708
- using _RESULT_TYPE_NAME _CXX17_DEPRECATE_ADAPTOR_TYPEDEFS = size_t;
1709
-
1710
- _NODISCARD _STATIC_CALL_OPERATOR size_t operator()(monostate) _CONST_CALL_OPERATOR noexcept {
1711
- return 1729; // Arbitrary value
1712
- }
1713
- };
1714
-
1715
1679
_STD_END
1716
1680
1717
1681
#undef _STL_STAMP
0 commit comments