+
+public:
+ /** Extracts a single component from the path. Negative indices count from
+ the end of the path. */
+ std::string operator[](int) const;
+
+ bool operator==(const Path &) const;
+ bool operator<(const Path &) const;
+ bool operator>(const Path &) const;
+ bool operator<=(const Path &other) const { return !(*this>other); }
+ bool operator>=(const Path &other) const { return !(*this<other); }
+ bool operator!=(const Path &other) const { return !(*this==other); }
+
+ Iterator begin() const { return Iterator::at_begin(*this); }
+ Iterator end() const { return Iterator::at_end(*this); }