Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::util::TransformIterator< Transform, Iter > Struct Template Reference

Public Types

using difference_type = typename std::iterator_traits<Iter>::difference_type
 
using iterator_category = typename std::iterator_traits<Iter>::iterator_category
 
using base_iterator = Iter
 
using base_value = typename std::iterator_traits<Iter>::value_type
 
using base_reference = typename std::iterator_traits<Iter>::reference
 
using base_pointer = typename std::iterator_traits<Iter>::pointer
 
using reference = std::invoke_result_t<Transform, base_reference>
 
using value_type = std::remove_reference_t<reference>
 
using pointer = std::add_pointer_t<value_type>
 

Public Member Functions

 TransformIterator (Iter iterator)
 
 TransformIterator (Transform transform, Iter iterator)
 
 TransformIterator (const TransformIterator &rhs)=default
 
 TransformIterator (TransformIterator &&rhs)=default
 
TransformIteratoroperator= (const TransformIterator &that)
 
TransformIteratoroperator= (TransformIterator &&that)
 
template<typename Other >
requires (!std::is_same_v<TransformIterator, Other>) && std::default_initializable<Transform> && std::constructible_from<Iter, typename Other::base_iterator>
 TransformIterator (const Other &other)
 
TransformIteratoroperator++ ()
 
TransformIterator operator++ (int)
 
template<typename I = Iter, typename = detail::require_t<std::bidirectional_iterator_tag, I>>
TransformIteratoroperator-- ()
 
template<typename I = Iter, typename = detail::require_t<std::bidirectional_iterator_tag, I>>
TransformIterator operator-- (int)
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
TransformIteratoroperator+= (difference_type rhs)
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
TransformIteratoroperator-= (difference_type rhs)
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
difference_type operator- (const TransformIterator &rhs) const
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
TransformIterator operator+ (difference_type i) const
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
TransformIterator operator- (difference_type i) const
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
reference operator[] (difference_type i) const
 
reference operator* () const
 
pointer operator-> () const
 
reference operator* ()
 
pointer operator-> ()
 
const Iter & base () const
 
Iter & base ()
 
bool operator== (const TransformIterator &rhs) const
 
bool operator!= (const TransformIterator &rhs) const
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
bool operator> (const TransformIterator &rhs) const
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
bool operator< (const TransformIterator &rhs) const
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
bool operator>= (const TransformIterator &rhs) const
 
template<typename I = Iter, typename = detail::require_t<std::random_access_iterator_tag, I>>
bool operator<= (const TransformIterator &rhs) const
 

The documentation for this struct was generated from the following file: