@@ -160,8 +160,44 @@ struct array {
160
160
}
161
161
};
162
162
163
+ template <typename _TypeT, size_t _Size>
164
+ bool operator==(const array<_TypeT, _Size> &__x, const array<_TypeT, _Size> &__y)
165
+ {
166
+ return equal(__x.begin(), __x.end(), __y.begin());
167
+ }
168
+
169
+ template <typename _TypeT, size_t _Size>
170
+ bool operator!=(const array<_TypeT, _Size> &__x, const array<_TypeT, _Size> &__y)
171
+ {
172
+ return !(__x == __y);
173
+ }
174
+
175
+ template <typename _TypeT, size_t _Size>
176
+ bool operator<(const array<_TypeT, _Size> &__x, const array<_TypeT, _Size> &__y)
177
+ {
178
+ return lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());
179
+ }
180
+
181
+ template <typename _TypeT, size_t _Size>
182
+ bool operator>(const array<_TypeT, _Size> &__x, const array<_TypeT, _Size> &__y)
183
+ {
184
+ return __y < __x;
185
+ }
186
+
187
+ template <typename _TypeT, size_t _Size>
188
+ bool operator<=(const array<_TypeT, _Size> &__x, const array<_TypeT, _Size> &__y)
189
+ {
190
+ return !(__x > __y);
191
+ }
192
+
193
+ template <typename _TypeT, size_t _Size>
194
+ bool operator>=(const array<_TypeT, _Size> &__x, const array<_TypeT, _Size> &__y)
195
+ {
196
+ return !(__x < __y);
197
+ }
198
+
163
199
// [array.special]
164
- template <class _TypeT, size_t _Size>
200
+ template <typename _TypeT, size_t _Size>
165
201
void swap(array<_TypeT, _Size> &__x, array<_TypeT, _Size> &__y)
166
202
{
167
203
__x.swap(__y);
0 commit comments