template<typename V, typename Parent, int Dimension, typename RowMemory>
class Vc::Common::MemoryBase< V, Parent, Dimension, RowMemory >
Common interface to all Memory classes, independent of allocation on the stack or heap. 
- Parameters
- 
  
    | V | The vector type you want to operate on. (e.g. float_v or uint_v) |  | Parent | This type is the complete type of the class that derives from MemoryBase. |  | Dimension | The number of dimensions the implementation provides. |  | RowMemory | Class to be used to work on a single row. |  
 
Definition at line 367 of file memorybase.h.
Inherits MemoryDimensionBase< V, Parent, Dimension, RowMemory >.
|  | 
| size_t | entriesCount () const | 
|  | 
| size_t | vectorsCount () const | 
|  | 
| template<typename Flags  = AlignedTag> | 
| MemoryVectorIterator< V, Flags > | begin (Flags flags=Flags()) | 
|  | Return a (vectorized) iterator to the start of this memory object. 
 | 
|  | 
| template<typename Flags  = AlignedTag> | 
| MemoryVectorIterator< const V, Flags > | begin (Flags flags=Flags()) const | 
|  | const overload of the above 
 | 
|  | 
| template<typename Flags  = AlignedTag> | 
| MemoryVectorIterator< V, Flags > | end (Flags flags=Flags()) | 
|  | Return a (vectorized) iterator to the end of this memory object. 
 | 
|  | 
| template<typename Flags  = AlignedTag> | 
| MemoryVectorIterator< const V, Flags > | end (Flags flags=Flags()) const | 
|  | const overload of the above 
 | 
|  | 
| template<typename Flags  = AlignedTag> | 
| std::enable_if<!std::is_convertible< Flags, int >::value, vector_reference< Flags > >::type | vector (size_t i, Flags=Flags()) | 
|  | 
| template<typename Flags  = AlignedTag> | 
| std::enable_if<!std::is_convertible< Flags, int >::value, const_vector_reference< Flags > >::type | vector (size_t i, Flags=Flags()) const | 
|  | Const overload of the above function.  More... 
 | 
|  | 
| template<typename Flags  = UnalignedTag> | 
| vector_reference< Flags > | vectorAt (size_t i, Flags flags=Flags()) | 
|  | 
| template<typename Flags  = UnalignedTag> | 
| const_vector_reference< Flags > | vectorAt (size_t i, Flags flags=Flags()) const | 
|  | Const overload of the above function.  More... 
 | 
|  | 
| template<typename ShiftT , typename Flags  = decltype(Unaligned)> | 
| std::enable_if< std::is_convertible< ShiftT, int >::value, vector_reference< decltype(std::declval< Flags >)|Unaligned)> >::type | vector (size_t i, ShiftT shift, Flags=Flags()) | 
|  | 
| template<typename ShiftT , typename Flags  = decltype(Unaligned)> | 
| std::enable_if< std::is_convertible< ShiftT, int >::value, const_vector_reference< decltype(std::declval< Flags >)|Unaligned)> >::type | vector (size_t i, ShiftT shift, Flags=Flags()) const | 
|  | Const overload of the above function. 
 | 
|  | 
| template<typename Flags  = AlignedTag> | 
| vector_reference< Flags > | firstVector (Flags f=Flags()) | 
|  | 
| template<typename Flags  = AlignedTag> | 
| const_vector_reference< Flags > | firstVector (Flags f=Flags()) const | 
|  | Const overload of the above function. 
 | 
|  | 
| template<typename Flags  = AlignedTag> | 
| vector_reference< Flags > | lastVector (Flags f=Flags()) | 
|  | 
| template<typename Flags  = AlignedTag> | 
| const_vector_reference< Flags > | lastVector (Flags f=Flags()) const | 
|  | Const overload of the above function. 
 | 
|  | 
| void | setZero () | 
|  | Zero the whole memory area. 
 | 
|  | 
| template<typename U > | 
| Parent & | operator= (U &&x) | 
|  | Assign a value to all vectors in the array. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| Parent & | operator+= (const MemoryBase< V, P2, Dimension, RM > &rhs) | 
|  | (Inefficient) shorthand to add up two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| Parent & | operator-= (const MemoryBase< V, P2, Dimension, RM > &rhs) | 
|  | (Inefficient) shorthand to subtract two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| Parent & | operator*= (const MemoryBase< V, P2, Dimension, RM > &rhs) | 
|  | (Inefficient) shorthand to multiply two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| Parent & | operator/= (const MemoryBase< V, P2, Dimension, RM > &rhs) | 
|  | (Inefficient) shorthand to divide two arrays. 
 | 
|  | 
| Parent & | operator+= (EntryType rhs) | 
|  | (Inefficient) shorthand to add a value to an array. 
 | 
|  | 
| Parent & | operator-= (EntryType rhs) | 
|  | (Inefficient) shorthand to subtract a value from an array. 
 | 
|  | 
| Parent & | operator*= (EntryType rhs) | 
|  | (Inefficient) shorthand to multiply a value to an array. 
 | 
|  | 
| Parent & | operator/= (EntryType rhs) | 
|  | (Inefficient) shorthand to divide an array with a value. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| bool | operator== (const MemoryBase< V, P2, Dimension, RM > &rhs) const | 
|  | (Inefficient) shorthand compare equality of two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| bool | operator!= (const MemoryBase< V, P2, Dimension, RM > &rhs) const | 
|  | (Inefficient) shorthand compare two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| bool | operator< (const MemoryBase< V, P2, Dimension, RM > &rhs) const | 
|  | (Inefficient) shorthand compare two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| bool | operator<= (const MemoryBase< V, P2, Dimension, RM > &rhs) const | 
|  | (Inefficient) shorthand compare two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| bool | operator> (const MemoryBase< V, P2, Dimension, RM > &rhs) const | 
|  | (Inefficient) shorthand compare two arrays. 
 | 
|  | 
| template<typename P2 , typename RM > | 
| bool | operator>= (const MemoryBase< V, P2, Dimension, RM > &rhs) const | 
|  | (Inefficient) shorthand compare two arrays. 
 | 
|  |