+private:
+ /** Adds a component to the path. It must not contain the directory
+ separator character. */
+ void add_component(const std::string &);
+
+public:
+ /** Extracts a single component from the path. Negative indices count from
+ the end of the path. */