![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
Extension adapter for Lumiera Forward Iterators to dereference any pointer values automatically. More...
Go to the source code of this file.
Extension adapter for Lumiera Forward Iterators to dereference any pointer values automatically.
Sometimes, the iteration of some container naturally just yields pointers to contained values. But, from a viewpoint of interface design, we'd prefer the iterator to expose direct references (NULL values can be excluded). This helper template does precisely this: it wraps up any other entity conforming to the »Lumiera Forward Iterator« concept and, on access, automatically dereferences the exposed pointer.
In addition, the reversed operation is also supported through another helper template: to take the address of any value exposed by the given underlying iterator
Definition in file iter-adapter-ptr-deref.hpp.
Namespaces | |
| namespace | lib |
| Implementation namespace for support and library code. | |
Classes | |
| class | PtrDerefIter< IT > |
| wrapper for an existing Iterator type, automatically dereferencing the output of the former. More... | |
| class | AddressExposingIter< IT > |
| wrapper for an existing Iterator type to expose the address of each value yielded. More... | |
Functions | |
| template<class I1 , class I2 > | |
| bool | operator== (PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir) |
| Supporting equality comparisons... | |
| template<class I1 , class I2 > | |
| bool | operator!= (PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir) |
| template<class IT > | |
| auto | ptrDeref (IT iter) |
| Convenience shortcut to dereference pointers yielded from the wrapped iterator. | |
| template<class I1 , class I2 > | |
| bool | operator== (AddressExposingIter< I1 > const &il, AddressExposingIter< I2 > const &ir) |
| Supporting equality comparisons... | |
| template<class I1 , class I2 > | |
| bool | operator!= (AddressExposingIter< I1 > const &il, AddressExposingIter< I2 > const &ir) |