libstdc++
initializer_list
Go to the documentation of this file.
1
// std::initializer_list support -*- C++ -*-
2
3
// Copyright (C) 2008, 2009 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 __CXX_INITIALIZER_LIST
31
#define __CXX_INITIALIZER_LIST
32
33
#ifdef __GXX_EXPERIMENTAL_CXX0X__
34
35
#pragma GCC visibility push(default)
36
37
#include <
cstddef
>
38
39
namespace
std
40
{
41
/// initializer_list
42
template
<
class
_E>
43
class
initializer_list
44
{
45
const
_E* __array;
46
size_t
__len;
47
48
// The compiler can call a private constructor.
49
initializer_list
(
const
_E* __a,
size_t
__l)
50
: __array(__a), __len(__l) { }
51
52
public
:
53
initializer_list
()
54
: __array(NULL), __len(0) { }
55
56
// Number of elements.
57
size_t
size()
const
58
{
return
__len; }
59
60
// First element.
61
const
_E* begin()
const
62
{
return
__array; }
63
64
// One past the last element.
65
const
_E* end()
const
66
{
return
begin() + size(); }
67
};
68
}
69
70
#pragma GCC visibility pop
71
#endif // C++0x
72
#endif // __CXX_INITIALIZER_LIST
src
libstdc++-v3
libsupc++
initializer_list
Generated on Wed Mar 12 2014 14:45:47 for libstdc++ by
1.8.1.2