|
47 | 47 | // Test SFINAE. |
48 | 48 |
|
49 | 49 | // == |
50 | | -static_assert(HasOperatorEqual<std::variant<int>>); |
51 | 50 | static_assert(HasOperatorEqual<std::variant<EqualityComparable>>); |
| 51 | +static_assert(HasOperatorEqual<std::variant<EqualityComparable, int, long>>); |
52 | 52 |
|
53 | 53 | static_assert(!HasOperatorEqual<std::variant<NonComparable>>); |
| 54 | +static_assert(!HasOperatorEqual<std::variant<NonComparable, EqualityComparable>>); |
54 | 55 |
|
55 | 56 | // > |
56 | | -static_assert(HasOperatorGreaterThan<std::variant<int>>); |
57 | 57 | static_assert(HasOperatorGreaterThan<std::variant<ThreeWayComparable>>); |
| 58 | +static_assert(HasOperatorGreaterThan<std::variant<ThreeWayComparable, int, long>>); |
58 | 59 |
|
59 | 60 | static_assert(!HasOperatorGreaterThan<std::variant<NonComparable>>); |
| 61 | +static_assert(!HasOperatorGreaterThan<std::variant<NonComparable, ThreeWayComparable>>); |
60 | 62 |
|
61 | 63 | // >= |
62 | | -static_assert(HasOperatorGreaterThanEqual<std::variant<int>>); |
63 | 64 | static_assert(HasOperatorGreaterThanEqual<std::variant<ThreeWayComparable>>); |
| 65 | +static_assert(HasOperatorGreaterThanEqual<std::variant<ThreeWayComparable, int, long>>); |
64 | 66 |
|
65 | 67 | static_assert(!HasOperatorGreaterThanEqual<std::variant<NonComparable>>); |
| 68 | +static_assert(!HasOperatorGreaterThanEqual<std::variant<NonComparable, ThreeWayComparable>>); |
66 | 69 |
|
67 | 70 | // < |
68 | | -static_assert(HasOperatorLessThan<std::variant<int>>); |
69 | 71 | static_assert(HasOperatorLessThan<std::variant<ThreeWayComparable>>); |
| 72 | +static_assert(HasOperatorLessThan<std::variant<ThreeWayComparable, int, long>>); |
70 | 73 |
|
71 | 74 | static_assert(!HasOperatorLessThan<std::variant<NonComparable>>); |
| 75 | +static_assert(!HasOperatorLessThan<std::variant<NonComparable, ThreeWayComparable>>); |
72 | 76 |
|
73 | 77 | // <= |
74 | | -static_assert(HasOperatorLessThanEqual<std::variant<int>>); |
75 | 78 | static_assert(HasOperatorLessThanEqual<std::variant<ThreeWayComparable>>); |
| 79 | +static_assert(HasOperatorLessThanEqual<std::variant<ThreeWayComparable, int, long>>); |
76 | 80 |
|
77 | 81 | static_assert(!HasOperatorLessThanEqual<std::variant<NonComparable>>); |
| 82 | +static_assert(!HasOperatorLessThanEqual<std::variant<NonComparable, ThreeWayComparable>>); |
78 | 83 |
|
79 | 84 | // != |
80 | | -static_assert(HasOperatorNotEqual<std::variant<int>>); |
81 | 85 | static_assert(HasOperatorNotEqual<std::variant<EqualityComparable>>); |
| 86 | +static_assert(HasOperatorNotEqual<std::variant<EqualityComparable, int, long>>); |
82 | 87 |
|
83 | 88 | static_assert(!HasOperatorNotEqual<std::variant<NonComparable>>); |
| 89 | +static_assert(!HasOperatorNotEqual<std::variant<NonComparable, EqualityComparable>>); |
84 | 90 |
|
85 | 91 | #endif |
86 | 92 |
|
|
0 commit comments