30#ifndef _GLIBCXX_EXPERIMENTAL_ARRAY
31#define _GLIBCXX_EXPERIMENTAL_ARRAY 1
34#pragma GCC system_header
39#if __cplusplus >= 201402L
44namespace std _GLIBCXX_VISIBILITY(default)
46_GLIBCXX_BEGIN_NAMESPACE_VERSION
50inline namespace fundamentals_v2
52#define __cpp_lib_experimental_make_array 201505
63template<
typename _Dest,
typename... _Types>
64 struct __make_array_elem
69template<
typename... _Types>
70 struct __make_array_elem<void, _Types...>
71 : common_type<_Types...>
77 template <
typename _Up>
78 struct __is_reference_wrapper<reference_wrapper<_Up>> :
true_type
81 static_assert(!__or_<__is_reference_wrapper<decay_t<_Types>>...>::value,
82 "make_array must be used with an explicit target type when"
83 "any of the arguments is a reference_wrapper");
87template <
typename _Dest = void,
typename... _Types>
89 array<
typename __make_array_elem<_Dest, _Types...>::type,
sizeof...(_Types)>
95template <
typename _Tp,
size_t _Nm,
size_t... _Idx>
99 return {{__a[_Idx]...}};
103template <
typename _Tp,
size_t _Nm>
104 constexpr array<remove_cv_t<_Tp>, _Nm>
115_GLIBCXX_END_NAMESPACE_VERSION
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
constexpr array< typename __make_array_elem< _Dest, _Types... >::type, sizeof...(_Types)> make_array(_Types &&... __t)
Create a std::array from a variable-length list of arguments.
constexpr array< remove_cv_t< _Tp >, _Nm > to_array(_Tp(&__a)[_Nm]) noexcept(is_nothrow_constructible< remove_cv_t< _Tp >, _Tp & >::value)
Create a std::array from an array.
ISO C++ entities toplevel namespace is std.
make_integer_sequence< size_t, _Num > make_index_sequence
Alias template make_index_sequence.
integer_sequence< size_t, _Idx... > index_sequence
Alias template index_sequence.
Namespace for features defined in ISO Technical Specifications.
A standard container for storing a fixed size sequence of elements.