20 #ifndef PULSEVIEW_PV_VIEWS_TRACE_VIEWITEMITERATOR_HPP 21 #define PULSEVIEW_PV_VIEWS_TRACE_VIEWITEMITERATOR_HPP 28 #include <type_traits> 33 using std::dynamic_pointer_cast;
34 using std::forward_iterator_tag;
35 using std::shared_ptr;
59 if (iter != owner->child_items().end())
79 shared_ptr<Owner> owner(dynamic_pointer_cast<Owner>(
81 if (owner && !owner->child_items().empty()) {
122 template<
class Owner,
class Item>
132 #endif // PULSEVIEW_PV_VIEWS_TRACE_VIEWITEMITERATOR_HPP void swap(ViewItemIterator< Owner, Item > &other)
reference operator->() const
Owner::item_list::const_iterator child_iterator
stack< child_iterator > iter_stack_
forward_iterator_tag iterator_category
stack< Owner * > owner_stack_
ViewItemIterator(Owner *owner, child_iterator iter)
ViewItemIterator(const ViewItemIterator< Owner, Item > &o)
ViewItemIterator(Owner *owner)
bool operator==(const ViewItemIterator &o) const
ViewItemIterator< Owner, Item > operator++(int)
ptrdiff_t difference_type
bool operator!=(const ViewItemIterator &o) const
const value_type & reference
shared_ptr< Item > value_type
ViewItemIterator< Owner, Item > & operator++()
reference operator*() const