Classes
Typedefs
Enumerations
Detailed Description
Iterators are "generalized pointers" to the elements of an array of arbitrary geometry, providing two operations, namely dereferencing via operator*
(returning the value of the element currently pointed to or a reference to it for use on the rhs) and moving the "pointer" to the next element via operator++
. In addition, these classes provide the necessary infrastructure to efficiently loop over arbitrary array geometries. This is used by the expression template engine and the vectorizer.
As a neat extra feature, the iterators are compatible with those known from the Standard Template Library (STL). So you can use the STL algorithms on MArrays
. The only thing to know here is that the standard iterators in the LTL are only models of forward_iterators
.
We provide a second set of iterators which are true random_access_iterators
, but only under the precondition that the associated ltl::MArray
object has a contiguous memory layout (which is always true for newly allocated arrays and for suitable subarrays or slices). The random-access iterators are then simply pointers to the array's data, aka objects of type T*
. These are obtained by calling MArray::beginRA() and MArray::endRA().
Typedef Documentation
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
template<typename T, int N>
Enumeration Type Documentation
template<typename T, int N>
anonymous enum [inherited] |
These define constants that are used by the expression template engine.
- Enumerator:
-
template<typename T, int N>
anonymous enum [inherited] |
template<typename T, int N>
anonymous enum [inherited] |
template<typename T, int N>
anonymous enum [inherited] |