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

A fixed size (static) contiguous array template. More...

#include <FArray.h>

Inheritance diagram for Util::FArray< Data, Capacity >:
Util::Pair< Propagator > Util::Pair< int >

Public Member Functions

 FArray ()
 Constructor. More...
 
 FArray (FArray< Data, Capacity > const &other)
 Copy constructor. More...
 
FArray< Data, Capacity > & operator= (FArray< Data, Capacity > const &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...
 
Data const & operator[] (int i) const
 Mimic C array subscripting. More...
 
Data * cArray ()
 Return pointer to underlying C array. More...
 
Data const * 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...
 

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.

Constructor & Destructor Documentation

◆ FArray() [1/2]

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

Constructor.

Definition at line 154 of file FArray.h.

◆ FArray() [2/2]

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

Copy constructor.

Parameters
otherthe FArray to be copied.

Definition at line 163 of file FArray.h.

Member Function Documentation

◆ operator=()

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

Assignment, element by element.

Parameters
otherthe RHS FArray

Definition at line 181 of file FArray.h.

◆ size()

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

◆ capacity()

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

Return number of elements in this FArray.

Definition at line 205 of file FArray.h.

◆ begin() [1/2]

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 213 of file FArray.h.

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

◆ begin() [2/2]

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 224 of file FArray.h.

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

◆ operator[]() [1/2]

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.

◆ operator[]() [2/2]

template<typename Data , int Capacity>
Data const & 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.

◆ cArray() [1/2]

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.

◆ cArray() [2/2]

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

Return pointer to const to underlying C array.

Definition at line 264 of file FArray.h.

◆ serialize()

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.

◆ packedSize()

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

Return packed size in a MemoryArchive, in bytes.

Definition at line 284 of file FArray.h.

◆ commitMpiType()

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: