std::experimental::filesystem::path
From cppreference.com
                    
                                        
                    < cpp | experimental | fs
                    
                                                            
                    | Defined in header  <experimental/filesystem> | ||
| class path; | (filesystem TS) | |
Objects of type path represent a path. Only syntactic aspects of paths are handled: the pathname may represent a non-existing path or even one that is not allowed on the current operating or file system.
The path can be traversed element-wise via iterators returned by the begin() and end() functions.
Calling any non-const member function of a path invalidates all iterators referring to elements of that object.
The forward traversal is done in the following order:
- The root name element, if any
- The root directory element, if any. The element is presented in generic format, thus lexicographical comparisons work correctly.
- Each successive filename element.
-  .if one or mare trailing non-root/characters are present.
| Contents | 
[edit] Member types
| Type | Definition | 
| value_type | todo | 
| string_type | std::basic_string<value_type> | 
| iterator | a constant BidirectionalIteratorwith avalue_typeofpath | 
| const_iterator | todo | 
[edit] Member constants
| constexpr value_type preferred_separator [static] | todo (public static member constant) | 
[edit] Member functions
| constructs a path(public member function) | |
| destroys a pathobject(public member function) | |
| assigns another path (public member function) | |
| assigns contents (public member function) | |
| Concatenation | |
| appends elements to the path (public member function) | |
| concatenates two paths (public member function) | |
| Modifiers | |
| erases the contents (public member function) | |
| converts directory separators to preferred directory separator (public member function) | |
| removes filename path component (public member function) | |
| replaces the last path component with another path (public member function) | |
| replaces the extension (public member function) | |
| swaps two paths (public member function) | |
| Format observers | |
| returns the native version of the path (public member function) | |
| returns the native version of the path (public member function) | |
| returns the path in native pathname format converted to a string (public member function) | |
| returns the path in generic pathname format converted to a string (public member function) | |
| Compare | |
| compares the lexical representations of two paths lexicographically (public member function) | |
| Decomposition | |
| returns the root-name of the path, if present (public member function) | |
| returns the root directory of the path, if present (public member function) | |
| returns the root path of the path, if present (public member function) | |
| returns path relative to the root path (public member function) | |
| returns the path of the parent path (public member function) | |
| returns the filename path component (public member function) | |
| returns the stem path component (public member function) | |
| returns the file extension path component (public member function) | |
| Queries | |
| checks if the path is empty (public member function) | |
| checks if the corresponding path element is not empty (public member function) | |
| checks if root_path() uniquely identifies file system location (public member function) | |
| Iterators | |
| returns an iterator to the beginning of element list (public member function) | |
| returns an iterator to the end of element list (public member function) | |
[edit] Non-member functions
| swaps two paths (function) | |
| lexicographically compares two paths (function) | |
| concatenates two paths (function) | |
| performs stream input and output on a path (function) | |
| creates a pathfrom a UTF-8 encoded source(function) | 


