| Technical Specification | ||||
| Filesystem library(filesystem TS) | ||||
| Library fundamentals(library fundamentals TS) | ||||
| Library fundamentals 2(library fundamentals TS v2) | ||||
| Library fundamentals 3(library fundamentals TS v3) | ||||
| Extensions for parallelism(parallelism TS) | ||||
| Extensions for parallelism 2(parallelism TS v2) | ||||
| Extensions for concurrency(concurrency TS) | ||||
| Extensions for concurrency 2(concurrency TS v2) | ||||
| Concepts(concepts TS) | ||||
| Ranges(ranges TS) | ||||
| Reflection(reflection TS) | ||||
| Mathematical special functions(special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
| Classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| File types | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Path decomposition | ||||
| Non-member functions | ||||
int compare(const path& p)constnoexcept; | (1) | (filesystem TS) |
int compare(const string_type& str)const; | (2) | (filesystem TS) |
int compare(const value_type* s)const; | (3) | (filesystem TS) |
Compares the lexical representations of the path and another path.
Contents |
| p | - | a path to compare to |
| str | - | a string representing path to compare to |
| s | - | a null-terminated string representing path to compare to |
A value less than0 if the path is lexicographically less than the given path.
A value equal to0 if the path is lexicographically equal to the given path.
A value greater than0 if the path is lexicographically greater than the given path.
For two-way comparisons,binary operators may be more suitable.
#include <experimental/filesystem>#include <iostream>namespace fs= std::experimental::filesystem; void demo(int rc, fs::path p1, fs::path p2){if(rc<0)std::cout<< p1<<" < "<< p2<<'\n';elseif(rc>0)std::cout<< p1<<" > "<< p2<<'\n';elseif(rc==0)std::cout<< p1<<" = "<< p2<<'\n';} int main(){ fs::path p1="/a/b/";// as if "a/b/." for lexicographical iteration fs::path p2="/a/b/#"; demo(p1.compare(p2), p1, p2); demo(p1.compare("a/b/_"), p1,"a/b/_");}
Output:
"/a/b/" > "/a/b/#""/a/b/" < "a/b/_"
| lexicographically compares two paths (function)[edit] |