4 struct basic_iterator
{
5 basic_iterator
operator++();
11 bool operator!=(basic_iterator
<T
>, basic_iterator
<T
>);
15 template<typename T
> struct remove_reference
{ typedef T type
; };
16 template<typename T
> struct remove_reference
<T
&> { typedef T type
; };
17 template<typename T
> struct remove_reference
<T
&&> { typedef T type
; };
20 typename remove_reference
<T
>::type
&&move(T
&&t
) noexcept
;
23 auto data(const C
&c
) -> decltype(c
.data());
26 auto begin(C
&c
) -> decltype(c
.begin());
28 template<typename T
, int N
>
29 T
*begin(T (&array
)[N
]);
31 using size_t = decltype(sizeof(0));
34 struct initializer_list
{
35 const T
* ptr
; size_t sz
;
37 template<typename T
> class allocator
{};
38 template <typename T
, typename Alloc
= allocator
<T
>>
40 typedef __gnu_cxx::basic_iterator
<T
> iterator
;
43 const T
*data() const;
45 vector(initializer_list
<T
> __l
,
46 const Alloc
& alloc
= Alloc());
48 template<typename InputIterator
>
49 vector(InputIterator first
, InputIterator __last
);
53 void push_back(const T
&);
56 void insert(iterator
, T
&&);
60 struct basic_string_view
{
62 basic_string_view(const T
*);
63 const T
*begin() const;
65 using string_view
= basic_string_view
<char>;
67 template<class _Mystr
> struct iter
{
68 iter
& operator-=(int);
70 iter
operator-(int _Off
) const {
79 basic_string(const T
*);
80 const T
*c_str() const;
81 operator basic_string_view
<T
> () const;
82 using const_iterator
= iter
<T
>;
84 using string
= basic_string
<char>;
97 template<typename U
= T
>
101 optional(optional
<U
>&& __t
);
109 optional
<__decay(T
)> make_optional(T
&&);
120 T
any_cast(const any
& operand
);
123 struct reference_wrapper
{
125 reference_wrapper(U
&&);
129 reference_wrapper
<T
> ref(T
& t
) noexcept
;
132 static constexpr bool value
= false;
133 constexpr operator bool() const noexcept
{ return value
; }
136 static constexpr bool value
= true;
137 constexpr operator bool() const noexcept
{ return value
; }
140 template<class T
> struct is_pointer
: false_type
{};
141 template<class T
> struct is_pointer
<T
*> : true_type
{};
142 template<class T
> struct is_pointer
<T
* const> : true_type
{};