11 #include <QDomElement> 45 inline auto DomChildren (
const QDomNode& parent,
const QString& tag)
49 #pragma GCC diagnostic push 50 #pragma GCC diagnostic ignored "-Wunused-local-typedefs" 51 using difference_type = ptrdiff_t;
52 using value_type = QDomElement;
53 using reference = QDomElement&;
54 using iterator_category = std::forward_iterator_tag;
55 #pragma GCC diagnostic pop 62 return Elem_ == other.Elem_;
65 Iterator& operator++ ()
67 Elem_ = Elem_.nextSiblingElement (Tag_);
79 const Iterator Begin_;
81 auto begin ()
const {
return Begin_; }
82 auto end ()
const {
return Iterator {}; }
85 auto firstChild = parent.firstChildElement (tag);
86 return Range { { firstChild, tag } };
auto operator*(const F &function, const T &functor) -> decltype(Fmap(functor, function))
An operator-style alias for Fmap().
auto DomChildren(const QDomNode &parent, const QString &tag)
Creates a range iterating over direct children named tag.
bool operator==(const ModelIterator &left, const ModelIterator &right)
QVector< QDomElement > DomDescendants(const QDomElement &parent, const QString &tag)
Creates a vector with all descendants of parent named tag.