83 typedef value_type& reference;
84 typedef const value_type& const_reference;
85 typedef value_type* pointer;
86 typedef const value_type* const_pointer;
87 typedef size_t size_type;
88 typedef std::ptrdiff_t difference_type;
89 typedef value_type* iterator;
90 typedef const value_type* const_iterator;
91 typedef std::reverse_iterator<iterator> reverse_iterator;
92 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
97 iterator begin() {
return array_; }
98 iterator end() {
return array_ + size_; }
100 const_iterator begin()
const {
return array_; }
101 const_iterator end()
const {
return array_ + size_; }
103 reverse_iterator rbegin() {
return reverse_iterator(end()); }
104 reverse_iterator rend() {
return reverse_iterator(begin()); }
106 const_reverse_iterator rbegin()
const {
return const_reverse_iterator(end()); }
107 const_reverse_iterator rend()
const {
return const_reverse_iterator(begin()); }
112 reference operator[](size_type iIndex)
114 LASS_ASSERT(iIndex < size_);
115 return array_[iIndex];
118 const_reference operator[](size_type iIndex)
const
120 LASS_ASSERT(iIndex < size_);
121 return array_[iIndex];
124 reference at(size_type iIndex)
128 throw std::out_of_range(
"index out of range in lass::util::FixedArray::at");
130 return array_[iIndex];
133 const_reference at(size_type iIndex)
const
137 throw std::out_of_range(
"index out of range in lass::util::FixedArray::at");
139 return array_[iIndex];
142 reference front() {
return array_[0]; }
143 reference back() {
return array_[size_ - 1]; }
145 const_reference front()
const {
return array_[0]; }
146 const_reference back()
const {
return array_[size_ - 1]; }
151 size_type size()
const {
return size_; }
152 size_type max_size()
const {
return size_; }
153 bool empty()
const {
return false; }
157 value_type array_[size_];