Iterator exposing elements of a boundary list as ranges. More...
#include <AssociatedData.h>
Public Types | |
| using | boundary_iterator_t = BoundaryIter |
| Type of boundary iterator. More... | |
| using | rangeview_t = decltype(makeBoundaryListRange(std::declval< boundary_iterator_t >())) |
| Type of range returned when dereferencing. More... | |
| using | value_type = rangeview_t |
| using | pointer = std::add_pointer_t< std::decay_t< value_type >> |
| using | reference = std::add_lvalue_reference_t< std::decay_t< value_type >> |
Public Types inherited from proxy::details::IteratorWrapperBase< BoundaryListRangeIterator< BoundaryIter >, BoundaryIter > | |
| using | iterator = BoundaryListRangeIterator< BoundaryIter > |
| using | value_type = typename BoundaryIter::value_type |
| using | pointer = std::add_pointer_t< value_type > |
| using | reference = std::add_lvalue_reference_t< value_type > |
| using | iterator_category = std::forward_iterator_tag |
Static Public Member Functions | |
| static auto | transform (BoundaryIter const &iter) |
| Returns the pointed range. More... | |
Private Types | |
| using | base_t = IteratorWrapperBase< BoundaryListRangeIterator< BoundaryIter >, BoundaryIter > |
Additional Inherited Members | |
Public Member Functions inherited from proxy::details::IteratorWrapperBase< BoundaryListRangeIterator< BoundaryIter >, BoundaryIter > | |
| IteratorWrapperBase ()=default | |
| Default constructor: default-constructs the underlying iterator. More... | |
| IteratorWrapperBase (data_iterator_t const &from) | |
| Copy-from-base constructor. More... | |
| iterator & | operator++ () |
| Prefix increment operator. More... | |
| bool | operator!= (data_iterator_t const &other) const |
| Comparison with a data iterator (makes unnecessary to wrap end iterators). More... | |
| bool | operator!= (iterator const &other) const |
| Comparison with another iterator. More... | |
| auto | operator[] (std::size_t index) const -> decltype(auto) |
| auto | operator* () const -> decltype(auto) |
| Dereference operator; need to be redefined by derived classes. More... | |
| auto | operator-> () const -> decltype(auto) |
| Dereference operator; need to be redefined by derived classes. More... | |
Protected Types inherited from proxy::details::IteratorWrapperBase< BoundaryListRangeIterator< BoundaryIter >, BoundaryIter > | |
| using | data_iterator_t = BoundaryIter |
Protected Member Functions inherited from proxy::details::IteratorWrapperBase< BoundaryListRangeIterator< BoundaryIter >, BoundaryIter > | |
| data_iterator_t const & | asDataIterator () const |
Static Protected Member Functions inherited from proxy::details::IteratorWrapperBase< BoundaryListRangeIterator< BoundaryIter >, BoundaryIter > | |
| static auto | transform (data_iterator_t const &) -> decltype(auto) |
| Transforms and returns the value at the specified data iterator. More... | |
Iterator exposing elements of a boundary list as ranges.
| BoundaryIter | type of iterator to boundary iterators |
This iterator wraps an iterator (BoundaryIter) to a sequence of iterators representing ranges of data. As an example, let the data be a collection of real numbers:
and we have a list of iterators that define subranges within that data:
Here rangeStart holds the begin iterator of each of the subranges, plus a "global" end iterator, as in the convention described in lar::makeBoundaryListRange() (which takes an iterator to rangeStart as argument). The BoundaryIter type in this example would be
.
When dereferenced, this iterator returns a view of the range currently pointed. This view has a STL-vector-like interface (again, see lar::makeBoundaryListRange()).
Definition at line 606 of file AssociatedData.h.
|
private |
Definition at line 611 of file AssociatedData.h.
| using proxy::details::BoundaryListRangeIterator< BoundaryIter >::boundary_iterator_t = BoundaryIter |
Type of boundary iterator.
Definition at line 614 of file AssociatedData.h.
| using proxy::details::BoundaryListRangeIterator< BoundaryIter >::pointer = std::add_pointer_t<std::decay_t<value_type>> |
Definition at line 621 of file AssociatedData.h.
| using proxy::details::BoundaryListRangeIterator< BoundaryIter >::rangeview_t = decltype(makeBoundaryListRange(std::declval<boundary_iterator_t>())) |
Type of range returned when dereferencing.
Definition at line 618 of file AssociatedData.h.
| using proxy::details::BoundaryListRangeIterator< BoundaryIter >::reference = std::add_lvalue_reference_t<std::decay_t<value_type>> |
Definition at line 622 of file AssociatedData.h.
| using proxy::details::BoundaryListRangeIterator< BoundaryIter >::value_type = rangeview_t |
Definition at line 620 of file AssociatedData.h.
|
inlinestatic |
Returns the pointed range.
The returned value may be a view object, that is a pure interface overlaid on a different data structure. As such, it may be not copiable and need to be propagated by reference.
Definition at line 635 of file AssociatedData.h.
1.8.5