21 #ifndef PULSEVIEW_PV_VIEW_VIEWITEMITERATOR_HPP
22 #define PULSEVIEW_PV_VIEW_VIEWITEMITERATOR_HPP
29 #include <type_traits>
54 if (iter != owner->child_items().end())
71 using std::dynamic_pointer_cast;
72 using std::shared_ptr;
77 shared_ptr<Owner> owner(dynamic_pointer_cast<Owner>(
79 if (owner && !owner->child_items().empty()) {
120 template<
class Owner,
class Item>
129 #endif // PULSEVIEW_PV_VIEW_VIEWITEMITERATOR_HPP
ViewItemIterator(Owner *owner)
bool operator==(const ViewItemIterator &o) const
ViewItemIterator(Owner *owner, child_iterator iter)
std::stack< Owner * > owner_stack_
const value_type & reference
ptrdiff_t difference_type
reference operator*() const
ViewItemIterator(const ViewItemIterator< Owner, Item > &o)
ViewItemIterator< Owner, Item > operator++(int)
reference operator->() const
void swap(ViewItemIterator< Owner, Item > &other)
void swap(ViewItemIterator< Owner, Item > &a, ViewItemIterator< Owner, Item > &b)
Owner::item_list::const_iterator child_iterator
std::shared_ptr< Item > value_type
ViewItemIterator< Owner, Item > & operator++()
std::forward_iterator_tag iterator_category
std::stack< child_iterator > iter_stack_
bool operator!=(const ViewItemIterator &o) const