24 #ifndef PSS_ASTROTYPES_MULTIARRAY_OVERLAYSLICEITERATOR_H
25 #define PSS_ASTROTYPES_MULTIARRAY_OVERLAYSLICEITERATOR_H
26 #include <type_traits>
31 namespace astrotypes {
38 template<
typename IterableType,
typename SliceIteratorType>
41 typedef typename std::conditional<std::is_const<IterableType>::value
42 ,
typename IterableType::const_iterator
43 ,
typename IterableType::iterator>::type parent_iterator;
45 typedef typename std::iterator_traits<parent_iterator>::value_type
value_type;
46 typedef typename std::iterator_traits<parent_iterator>::reference
reference;
47 typedef typename std::iterator_traits<parent_iterator>::pointer
pointer;
55 parent_iterator _parent_iterator;
62 #endif // PSS_ASTROTYPES_MULTIARRAY_OVERLAYSLICEITERATOR_H
reference operator*() const
OverlaySliceIterator(IterableType &data, SliceIteratorType const &slice_it)
std::iterator_traits< parent_iterator >::pointer pointer
std::iterator_traits< parent_iterator >::reference reference
Overlays an iterator from one data structure onto that of another.
std::iterator_traits< parent_iterator >::value_type value_type