MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / array

Class array

extern/boost/boost/array.hpp:60–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58
59 template<class T, std::size_t N>
60 class array {
61 public:
62 T elems[N]; // fixed-size array of elements of type T
63
64 public:
65 // type definitions
66 typedef T value_type;
67 typedef T* iterator;
68 typedef const T* const_iterator;
69 typedef T& reference;
70 typedef const T& const_reference;
71 typedef std::size_t size_type;
72 typedef std::ptrdiff_t difference_type;
73
74 // iterator support
75 iterator begin() { return elems; }
76 const_iterator begin() const { return elems; }
77 const_iterator cbegin() const { return elems; }
78
79 iterator end() { return elems+N; }
80 const_iterator end() const { return elems+N; }
81 const_iterator cend() const { return elems+N; }
82
83 // reverse iterator support
84#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
85 typedef std::reverse_iterator<iterator> reverse_iterator;
86 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
87#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
88 typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
89 value_type, reference, iterator, difference_type> reverse_iterator;
90 typedef std::reverse_iterator<const_iterator, std::random_access_iterator_tag,
91 value_type, const_reference, const_iterator, difference_type> const_reverse_iterator;
92#else
93 // workaround for broken reverse_iterator implementations
94 typedef std::reverse_iterator<iterator,T> reverse_iterator;
95 typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
96#endif
97
98 reverse_iterator rbegin() { return reverse_iterator(end()); }
99 const_reverse_iterator rbegin() const {
100 return const_reverse_iterator(end());
101 }
102 const_reverse_iterator crbegin() const {
103 return const_reverse_iterator(end());
104 }
105
106 reverse_iterator rend() { return reverse_iterator(begin()); }
107 const_reverse_iterator rend() const {
108 return const_reverse_iterator(begin());
109 }
110 const_reverse_iterator crend() const {
111 return const_reverse_iterator(begin());
112 }
113
114 // operator[]
115 reference operator[](size_type i)
116 {
117 return BOOST_ASSERT_MSG( i < N, "out of range" ), elems[i];

Callers

nothing calls this directly

Calls 4

copyFunction · 0.50
beginClass · 0.50
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected