libstdc++
initializer_list
Go to the documentation of this file.
1
/
/
std
:
:
initializer_list
support
-
*
-
C
+
+
-
*
-
2
3
/
/
Copyright
(
C
)
2008-2025
Free
Software
Foundation
,
Inc
.
4
/
/
5
/
/
This
file
is
part
of
GCC
.
6
/
/
7
/
/
GCC
is
free
software
;
you
can
redistribute
it
and
/
or
modify
8
/
/
it
under
the
terms
of
the
GNU
General
Public
License
as
published
by
9
/
/
the
Free
Software
Foundation
;
either
version
3
,
or
(
at
your
option
)
10
/
/
any
later
version
.
11
/
/
12
/
/
GCC
is
distributed
in
the
hope
that
it
will
be
useful
,
13
/
/
but
WITHOUT
ANY
WARRANTY
;
without
even
the
implied
warranty
of
14
/
/
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
15
/
/
GNU
General
Public
License
for
more
details
.
16
/
/
17
/
/
Under
Section
7
of
GPL
version
3
,
you
are
granted
additional
18
/
/
permissions
described
in
the
GCC
Runtime
Library
Exception
,
version
19
/
/
3
.
1
,
as
published
by
the
Free
Software
Foundation
.
20
21
/
/
You
should
have
received
a
copy
of
the
GNU
General
Public
License
and
22
/
/
a
copy
of
the
GCC
Runtime
Library
Exception
along
with
this
program
;
23
/
/
see
the
files
COPYING3
and
COPYING
.
RUNTIME
respectively
.
If
not
,
see
24
/
/
<
http
:
/
/
www
.
gnu
.
org
/
licenses
/
>
.
25
26
/
*
*
@
file
initializer_list
27
*
This
is
a
Standard
C
+
+
Library
header
.
28
*
/
29
30
#ifndef _INITIALIZER_LIST
31
#define _INITIALIZER_LIST
32
33
#ifdef _GLIBCXX_SYSHDR
34
#pragma GCC system_header
35
#endif
36
37
#if __cplusplus < 201103L
38
# include <bits/c++0x_warning.h>
39
#else // C++0x
40
41
#include <bits/c++config.h>
42
43
namespace
std
_GLIBCXX_VISIBILITY
(
default
)
44
{
45
/
/
/
initializer_list
46
template
<
class
_E
>
47
class
initializer_list
48
{
49
public
:
50
type
def
_E
value_type
;
51
type
def
const
_E
&
reference
;
52
type
def
const
_E
&
const_reference
;
53
type
def
size_t
size_type
;
54
type
def
const
_E
*
iterator
;
55
type
def
const
_E
*
const_iterator
;
56
57
private
:
58
iterator
_M_array
;
59
size_type
_M_len
;
60
61
/
/
The
compiler
can
call
a
private
constructor
.
62
constexpr
initializer_list
(
const_iterator
__a
,
size_type
__l
)
63
:
_M_array
(
__a
)
,
_M_len
(
__l
)
{ }
64
65
public
:
66
constexpr
initializer_list
(
)
noexcept
67
:
_M_array
(
0
)
,
_M_len
(
0
)
{ }
68
69
/
/
Number
of
elements
.
70
constexpr
size_type
71
size
(
)
const
noexcept
{
return
_M_len
; }
72
73
/
/
First
element
.
74
constexpr
const_iterator
75
begin
(
)
const
noexcept
{
return
_M_array
; }
76
77
/
/
One
past
the
last
element
.
78
constexpr
const_iterator
79
end
() const noexcept {
return
begin
() + size(); }
80
};
81
82
/
*
*
83
*
@
brief
Return
an
iterator
pointing
to
the
first
element
of
84
*
the
initializer_list
.
85
*
@
param
__ils
Initializer
list
.
86
*
@
relates
initializer_list
87
*
/
88
template
<
class
_Tp
>
89
constexpr
const
_Tp
*
90
begin
(
initializer_list
<
_Tp
>
__ils
)
noexcept
91
{
return
__ils
.
begin
(
)
; }
92
93
/
*
*
94
*
@
brief
Return
an
iterator
pointing
to
one
past
the
last
element
95
*
of
the
initializer_list
.
96
*
@
param
__ils
Initializer
list
.
97
*
@
relates
initializer_list
98
*
/
99
template
<
class
_Tp
>
100
constexpr
const
_Tp
*
101
end
(initializer_list<_Tp> __ils) noexcept
102
{
return
__ils
.
end
(); }
103
}
104
105
#endif // C++11
106
107
#endif // _INITIALIZER_LIST
initializer_list
Generated by
1.13.2