MArray iterators
[The Class MArray]

Classes


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().


Generated on Wed Mar 11 17:44:35 2009 for LTL by  doxygen 1.5.3