1 #ifndef UTIL_FS_ARRAY_H 2 #define UTIL_FS_ARRAY_H 11 #include <util/containers/ArrayIterator.h> 12 #include <util/containers/ConstArrayIterator.h> 36 template <
typename Data,
int Capacity>
113 void append(
const Data &data);
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) {
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>
225 template <
class Data,
int Capacity>
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>
280 const unsigned int version)
283 if (size_ > Capacity) {
284 UTIL_THROW(
"FSArray<Data, Capacity> with size > Capacity");
286 for (
int i = 0; i <
size_; ++i) {
294 template <
typename Data,
int Capacity>
296 {
return Capacity*
sizeof(Data) +
sizeof(
int); }
void clear()
Set logical size to zero.
void setCurrent(Data *ptr)
Set the current pointer value.
void append(const Data &data)
Append data to the end of the array.
File containing preprocessor macros for error handling.
void serialize(Archive &ar, const unsigned int version)
Serialize to/from an archive.
FSArray< Data, Capacity > & operator=(const FSArray< Data, Capacity > &other)
Assignment, element by element.
int capacity() const
Return physical capacity of array.
int packedSize()
Packed size of FSArray in a MemoryArchive, in bytes.
Forward const iterator for an Array or a C array.
A fixed capacity (static) contiguous array with a variable logical size.
void setEnd(Data *ptr)
Set the value of the end pointer.
int size_
Logical size of array (number of elements used).
#define UTIL_THROW(msg)
Macro for throwing an Exception, reporting function, file and line number.
Data & operator[](int i)
Mimic C array subscripting.
Utility classes for scientific computation.
void begin(ArrayIterator< Data > &iterator)
Set an ArrayIterator to the beginning of this container.
Data data_[Capacity]
Array of Data elements.
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.
virtual ~FSArray()
Destructor.
int size() const
Return logical size of this array (i.e., number of elements).