118
118
_LIBCPP_BEGIN_NAMESPACE_STD
120
120
template <class _Tp, size_t _Size>
121
struct _LIBCPP_TYPE_VIS array
121
struct _LIBCPP_TYPE_VIS_ONLY array
124
124
typedef array __self;
226
226
template <class _Tp, size_t _Size>
227
_LIBCPP_INLINE_VISIBILITY inline
227
inline _LIBCPP_INLINE_VISIBILITY
229
229
operator==(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)
234
234
template <class _Tp, size_t _Size>
235
_LIBCPP_INLINE_VISIBILITY inline
235
inline _LIBCPP_INLINE_VISIBILITY
237
237
operator!=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)
242
242
template <class _Tp, size_t _Size>
243
_LIBCPP_INLINE_VISIBILITY inline
243
inline _LIBCPP_INLINE_VISIBILITY
245
245
operator<(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)
250
250
template <class _Tp, size_t _Size>
251
_LIBCPP_INLINE_VISIBILITY inline
251
inline _LIBCPP_INLINE_VISIBILITY
253
253
operator>(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)
258
258
template <class _Tp, size_t _Size>
259
_LIBCPP_INLINE_VISIBILITY inline
259
inline _LIBCPP_INLINE_VISIBILITY
261
261
operator<=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)
266
266
template <class _Tp, size_t _Size>
267
_LIBCPP_INLINE_VISIBILITY inline
267
inline _LIBCPP_INLINE_VISIBILITY
269
269
operator>=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)
274
274
template <class _Tp, size_t _Size>
275
_LIBCPP_INLINE_VISIBILITY inline
275
inline _LIBCPP_INLINE_VISIBILITY
276
276
typename enable_if
278
278
__is_swappable<_Tp>::value,
287
287
template <class _Tp, size_t _Size>
288
class _LIBCPP_TYPE_VIS tuple_size<array<_Tp, _Size> >
288
class _LIBCPP_TYPE_VIS_ONLY tuple_size<array<_Tp, _Size> >
289
289
: public integral_constant<size_t, _Size> {};
291
291
template <class _Tp, size_t _Size>
292
class _LIBCPP_TYPE_VIS tuple_size<const array<_Tp, _Size> >
292
class _LIBCPP_TYPE_VIS_ONLY tuple_size<const array<_Tp, _Size> >
293
293
: public integral_constant<size_t, _Size> {};
295
295
template <size_t _Ip, class _Tp, size_t _Size>
296
class _LIBCPP_TYPE_VIS tuple_element<_Ip, array<_Tp, _Size> >
296
class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, array<_Tp, _Size> >
299
299
typedef _Tp type;
302
302
template <size_t _Ip, class _Tp, size_t _Size>
303
class _LIBCPP_TYPE_VIS tuple_element<_Ip, const array<_Tp, _Size> >
303
class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, const array<_Tp, _Size> >
306
306
typedef const _Tp type;
309
309
template <size_t _Ip, class _Tp, size_t _Size>
310
_LIBCPP_INLINE_VISIBILITY inline _LIBCPP_CONSTEXPR_AFTER_CXX11
310
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
312
312
get(array<_Tp, _Size>& __a) _NOEXCEPT
318
318
template <size_t _Ip, class _Tp, size_t _Size>
319
_LIBCPP_INLINE_VISIBILITY inline _LIBCPP_CONSTEXPR_AFTER_CXX11
319
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
321
321
get(const array<_Tp, _Size>& __a) _NOEXCEPT
327
327
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
329
329
template <size_t _Ip, class _Tp, size_t _Size>
330
_LIBCPP_INLINE_VISIBILITY inline _LIBCPP_CONSTEXPR_AFTER_CXX11
330
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
332
332
get(array<_Tp, _Size>&& __a) _NOEXCEPT