| 
| 
constexpr  | FArray () | 
|   | Default constructor - the array size is zero. 
  | 
|   | 
|   | FArray (size_type s, const T &t=T()) | 
|   | 
| 
template<uint64 S2>  | 
|   | FArray (const FArray< T, S2, I > &f) | 
|   | Copy constructor, valid for FArrays of the same data type but different stack lengths. 
  | 
|   | 
| 
constexpr  | FArray (const FArray< T, S, I > &f) | 
|   | Specialized copy constructor, for the special case of when the stack lengths are the same. 
  | 
|   | 
| 
  | FArray (std::initializer_list< T > l) | 
|   | 
| 
  | ~FArray () | 
|   | Destructor. 
  | 
|   | 
| 
constexpr const FArray< T, S, I > &  | operator= (const FArray< T, S, I > &f) | 
|   | 
| 
template<uint64 S2>  | 
| constexpr const FArray< T, S, I > &  | operator= (const FArray< T, S2, I > &f) | 
|   | Assignment operator, valid for FArrays of the same data type but different stack lengths. 
  | 
|   | 
| 
template<uint64 S2>  | 
| bool  | operator== (const FArray< T, S2, I > &f) const | 
|   | 
| I  | size () const | 
|   | 
| 
size_type  | stackSize () const | 
|   | Returns the size of the array pre-allocated on the stack. 
  | 
|   | 
| size_type  | allocated () const | 
|   | 
| bool  | empty () const | 
|   | 
| T *  | data () | 
|   | 
| const T *  | data () const | 
|   | 
| T &  | front () | 
|   | 
| const T &  | front () const | 
|   | 
| T &  | back () | 
|   | 
| const T &  | back () const | 
|   | 
| I  | find (const T &t) const | 
|   | 
| 
size_type  | capacity () const | 
|   | 
| 
void  | push_back (const T &t) | 
|   | Adds a new element to the end of the array, increasing the array size by one. 
  | 
|   | 
| T *  | emplace_back () | 
|   | 
| T *  | emplace_n_back (size_type n) | 
|   | 
| 
void  | pop_back () | 
|   | Removes the last element in the array. The results are undefined if the array is of zero length. 
  | 
|   | 
| void  | resize (I i, const T &t=T()) | 
|   | 
| iterator  | insert (I i, const T &t) | 
|   | 
| 
void  | put (I i, const T &t) | 
|   | Adds a value to the array, first making certain it is big enough to hold it. 
  | 
|   | 
| 
template<class C >  | 
| void  | append (const C &in) | 
|   | Appends the contents of one FArray onto another. 
  | 
|   | 
| iterator  | insert (iterator it, const T &t) | 
|   | 
| bool  | remove (I i) | 
|   | 
| size_type  | removeAll (const T &t) | 
|   | 
| void  | clear () | 
|   | 
| void  | reset () | 
|   | 
| 
void  | reserve (size_type s) | 
|   | 
| void  | clip () | 
|   | 
| iterator  | begin () | 
|   | 
| const_iterator  | begin () const | 
|   | 
| const_iterator  | constBegin () const | 
|   | 
| iterator  | end () | 
|   | 
| const_iterator  | end () const | 
|   | 
| const_iterator  | constEnd () const | 
|   | 
| T &  | at (I i) | 
|   | 
| const T &  | at (I i) const | 
|   | 
| T &  | operator[] (I i) | 
|   | 
| const T &  | operator[] (I i) const | 
|   | 
| T  | value (I i, const T &t={}) const | 
|   | 
template<typename T, uint64 S = 32, typename I = uint64>
class FArray< T, S, I >
An array class that attempts to minimize unnecessary heap access. 
T is the data type.
S is the stack length.
This class attempts to provide a speed-optimized array for use in plot generation.
It does this in two ways.
First, it attempts to minimize heap churn by not deallocating memory.
Second, it has a second template argument that indicates how much memory to create ON THE STACK. Only if the array size needs to exceed S, does it actually use memory from the heap.