Simpatico  v1.10
List of all members | Public Member Functions | Static Public Member Functions
Util::FArray< Data, Capacity > Class Template Reference

Detailed Description

template<typename Data, int Capacity>
class Util::FArray< Data, Capacity >

A fixed size (static) contiguous array template.

An FArray is a simple wraper for a fixed size C Array, with a capacity that is fixed at compile time. As in a C Array, or a DArray container, all of the elements are accessible. Unlike an FSArray, an FArray does not have logical size that is distinct from its physical capacity.

When bounds checking is on (i.e., when NDEBUG is not defined), the operator [] checks that the index is non-negative and less than the Capacity.

Advice: Use an FArray if you know exactly how many elements will be needed at compile time. Use an FSArray when you need a small statically allocated array for which the maximum capacity needed is known at compile time, but the logical size may be less than the capacity. Use a DArray if you need a large, dynamically allocated array that must be allocated after instantiation.

Definition at line 46 of file FArray.h.

#include <FArray.h>

Public Member Functions

 FArray ()
 Constructor. More...
 
 FArray (const FArray< Data, Capacity > &other)
 Copy constructor. More...
 
FArray< Data, Capacity > & operator= (const FArray< Data, Capacity > &other)
 Assignment, element by element. More...
 
int size () const
 Return number of elements in this FArray. More...
 
int capacity () const
 Return number of elements in this FArray. More...
 
void begin (ArrayIterator< Data > &iterator)
 Set an ArrayIterator to the beginning of this Array. More...
 
void begin (ConstArrayIterator< Data > &iterator) const
 Set a ConstArrayIterator to the beginning of this Array. More...
 
Data & operator[] (int i)
 Mimic C array subscripting. More...
 
const Data & operator[] (int i) const
 Mimic C array subscripting. More...
 
Data * cArray ()
 Return pointer to underlying C array. More...
 
const Data * cArray () const
 Return pointer to const to underlying C array. More...
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 Serialize a FArray to/from an Archive. More...
 
int packedSize ()
 Return packed size in a MemoryArchive, in bytes. More...
 

Static Public Member Functions

static void commitMpiType ()
 Commit associated MPI DataType. More...
 

Constructor & Destructor Documentation

template<typename Data , int Capacity>
Util::FArray< Data, Capacity >::FArray ( )

Constructor.

Definition at line 156 of file FArray.h.

template<typename Data, int Capacity>
Util::FArray< Data, Capacity >::FArray ( const FArray< Data, Capacity > &  other)

Copy constructor.

Parameters
otherthe FArray to be copied.

Definition at line 165 of file FArray.h.

Member Function Documentation

template<typename Data, int Capacity>
FArray< Data, Capacity > & Util::FArray< Data, Capacity >::operator= ( const FArray< Data, Capacity > &  other)

Assignment, element by element.

Capacity of LHS FArray must be >= size of RHS FArray.

Parameters
otherthe RHS FArray

Definition at line 181 of file FArray.h.

template<typename Data , int Capacity>
int Util::FArray< Data, Capacity >::size ( ) const
inline

Return number of elements in this FArray.

Definition at line 200 of file FArray.h.

template<typename Data , int Capacity>
int Util::FArray< Data, Capacity >::capacity ( ) const
inline

Return number of elements in this FArray.

Definition at line 207 of file FArray.h.

template<typename Data, int Capacity>
void Util::FArray< Data, Capacity >::begin ( ArrayIterator< Data > &  iterator)
inline

Set an ArrayIterator to the beginning of this Array.

Parameters
iteratorArrayIterator, initialized on output.

Definition at line 214 of file FArray.h.

References Util::ArrayIterator< Data >::setCurrent(), and Util::ArrayIterator< Data >::setEnd().

template<typename Data, int Capacity>
void Util::FArray< Data, Capacity >::begin ( ConstArrayIterator< Data > &  iterator) const
inline

Set a ConstArrayIterator to the beginning of this Array.

Parameters
iteratorConstArrayIterator, initialized on output.

Definition at line 225 of file FArray.h.

References Util::ConstArrayIterator< Data >::setCurrent(), and Util::ConstArrayIterator< Data >::setEnd().

template<typename Data , int Capacity>
Data & Util::FArray< Data, Capacity >::operator[] ( int  i)
inline

Mimic C array subscripting.

Parameters
iarray index
Returns
reference to element i

Definition at line 235 of file FArray.h.

template<typename Data , int Capacity>
const Data & Util::FArray< Data, Capacity >::operator[] ( int  i) const
inline

Mimic C array subscripting.

Parameters
iarray index
Returns
const reference to element i

Definition at line 246 of file FArray.h.

template<typename Data , int Capacity>
Data * Util::FArray< Data, Capacity >::cArray ( )
inline

Return pointer to underlying C array.

Definition at line 257 of file FArray.h.

template<typename Data , int Capacity>
const Data * Util::FArray< Data, Capacity >::cArray ( ) const

Return pointer to const to underlying C array.

Definition at line 264 of file FArray.h.

template<class Data , int Capacity>
template<class Archive >
void Util::FArray< Data, Capacity >::serialize ( Archive &  ar,
const unsigned int  version 
)

Serialize a FArray to/from an Archive.

Parameters
ararchive
versionarchive version id

Definition at line 272 of file FArray.h.

template<typename Data , int Capacity>
int Util::FArray< Data, Capacity >::packedSize ( )

Return packed size in a MemoryArchive, in bytes.

Packed size of FArray in a MemoryArchive, in bytes.

Definition at line 284 of file FArray.h.

template<typename Data , int Capacity>
void Util::FArray< Data, Capacity >::commitMpiType ( )
static

Commit associated MPI DataType.

Definition at line 292 of file FArray.h.

References Util::MpiStructBuilder::addMember(), Util::MpiStructBuilder::commit(), and Util::MpiStructBuilder::setBase().


The documentation for this class was generated from the following file: