11#include <util/containers/ArrayIterator.h>
12#include <util/containers/ConstArrayIterator.h>
36 template <
typename Data,
int Capacity>
126 template <
class Archive>
127 void serialize(Archive& ar,
const unsigned int version);
147 template <
class Data,
int Capacity>
157 template <
class Data,
int Capacity>
161 for (
int i = 0; i < size_; ++i) {
162 data_[i] = other.
data_[i];
173 template <
class Data,
int Capacity>
179 if (
this == &other)
return *
this;
183 for (
int i = 0; i < size_; ++i) {
192 template <
class Data,
int Capacity>
199 template <
class Data,
int Capacity>
206 template <
class Data,
int Capacity>
215 template <
class Data,
int Capacity>
219 iterator.
setEnd(data_ + size_);
225 template <
class Data,
int Capacity>
229 iterator.
setEnd(data_ + size_);
235 template <
class Data,
int Capacity>
246 template <
class Data,
int Capacity>
257 template <
class Data,
int Capacity>
260 if (size_ == Capacity) {
270 template <
class Data,
int Capacity>
277 template <
class Data,
int Capacity>
278 template <
class Archive>
281 const unsigned int version)
284 if (size_ > Capacity) {
285 UTIL_THROW(
"FSArray<Data, Capacity> with size > Capacity");
287 for (
int i = 0; i < size_; ++i) {
295 template <
typename Data,
int Capacity>
297 {
return Capacity*
sizeof(Data) +
sizeof(
int); }
Forward iterator for an Array or a C array.
void setEnd(Data *ptr)
Set the value of the end pointer.
void setCurrent(Data *ptr)
Set the current pointer value.
Forward const iterator for an Array or a C array.
void setEnd(Data *ptr)
Set the value of the end pointer.
void setCurrent(Data *ptr)
Set the current pointer value.
A fixed capacity (static) contiguous array with a variable logical size.
Data & operator[](int i)
Mimic C array subscripting.
void serialize(Archive &ar, const unsigned int version)
Serialize to/from an archive.
int size() const
Return logical size of this array (i.e., number of elements).
Data data_[Capacity]
Array of Data elements.
void begin(ArrayIterator< Data > &iterator)
Set an ArrayIterator to the beginning of this container.
int packedSize()
Packed size of FSArray in a MemoryArchive, in bytes.
void clear()
Set logical size to zero.
FSArray(FSArray< Data, Capacity > const &other)
Copy constructor.
void begin(ConstArrayIterator< Data > &iterator) const
Set a ConstArrayIterator to the beginning of this container.
int size_
Logical size of array (number of elements used).
int capacity() const
Return physical capacity of array.
void append(Data const &data)
Append data to the end of the array.
FSArray< Data, Capacity > & operator=(FSArray< Data, Capacity > const &other)
Assignment, element by element.
virtual ~FSArray()
Destructor.
File containing preprocessor macros for error handling.
#define UTIL_THROW(msg)
Macro for throwing an Exception, reporting function, file and line number.
Utility classes for scientific computation.