std::experimental::filesystem::path::compare (3) - Linux Manuals
std::experimental::filesystem::path::compare: std::experimental::filesystem::path::compare
Command to display std::experimental::filesystem::path::compare
manual in Linux: $ man 3 std::experimental::filesystem::path::compare
NAME
std::experimental::filesystem::path::compare - std::experimental::filesystem::path::compare
Synopsis
int compare( const path& p ) const; (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.
1) Returns a value less than, equal to or greater than 0 if the native representation of the path (native()) is respectively lexicographically less than, equal to or greater than the native representation of p (p.native()). Comparison is performed element-wise, as if by iterating both paths from begin() to end().
2) Equivalent to compare(path(str)).
3) Equivalent to compare(path(s)).
Parameters
p - a path to compare to
str - a string representing path to compare to
s - a null-terminated string representing path to compare to
Return value
A value less than 0 if the path is lexicographically less than the given path.
A value equal to 0 if the path is lexicographically equal to the given path.
A value greater than 0 if the path is lexicographically greater than the given path.
Exceptions
1)
noexcept specification:
noexcept
2-3) (none)
Notes
For two-way comparisons, binary_operators may be more suitable.
Example
// Run this code
#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
void demo(int rc, fs::path p1, fs::path p2) {
if(rc < 0) std::cout << p1 << " < " << p2 << '\n';
else if(rc > 0) std::cout << p1 << " > " << p2 << '\n';
else if(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/_"
See also
operator==
operator!= lexicographically compares two paths
operator< (function)
operator<=
operator>
operator>=
Pages related to std::experimental::filesystem::path::compare
- std::experimental::filesystem::path::concat, (3) - std::experimental::filesystem::path::concat,
- std::experimental::filesystem::path::concat,std::experimental::filesystem::path::operator+= (3) - std::experimental::filesystem::path::concat,std::experimental::filesystem::path::operator+=
- std::experimental::filesystem::path::c_str,std::experimental::filesystem::path::native, (3) - std::experimental::filesystem::path::c_str,std::experimental::filesystem::path::native,
- std::experimental::filesystem::path::c_str,std::experimental::filesystem::path::native,std::experimental::filesystem::path::operatorstring_type() (3) - std::experimental::filesystem::path::c_str,std::experimental::filesystem::path::native,std::experimental::filesystem::path::operatorstring_type()
- std::experimental::filesystem::path::clear (3) - std::experimental::filesystem::path::clear
- std::experimental::filesystem::path::append, (3) - std::experimental::filesystem::path::append,
- std::experimental::filesystem::path::assign (3) - std::experimental::filesystem::path::assign
- std::experimental::filesystem::path::begin,std::experimental::filesystem::path::end (3) - std::experimental::filesystem::path::begin,std::experimental::filesystem::path::end
- std::experimental::filesystem::path::empty (3) - std::experimental::filesystem::path::empty
- std::experimental::filesystem::path::extension (3) - std::experimental::filesystem::path::extension
- std::experimental::filesystem::path::filename (3) - std::experimental::filesystem::path::filename
- std::experimental::filesystem::path::generic_string,generic_wstring,generic_u8string,... (3) - std::experimental::filesystem::path::generic_string,generic_wstring,generic_u8string,...
- std::experimental::filesystem::path::has_... (3) - std::experimental::filesystem::path::has_...
- std::experimental::filesystem::path::is_absolute,is_relative (3) - std::experimental::filesystem::path::is_absolute,is_relative
- std::experimental::filesystem::path::make_preferred (3) - std::experimental::filesystem::path::make_preferred
- std::experimental::filesystem::path::operator= (3) - std::experimental::filesystem::path::operator=
- std::experimental::filesystem::path::parent_path (3) - std::experimental::filesystem::path::parent_path
- std::experimental::filesystem::path::path (3) - std::experimental::filesystem::path::path
- std::experimental::filesystem::path::relative_path (3) - std::experimental::filesystem::path::relative_path
- std::experimental::filesystem::path::remove_filename (3) - std::experimental::filesystem::path::remove_filename
- std::experimental::filesystem::path::replace_extension (3) - std::experimental::filesystem::path::replace_extension
- std::experimental::filesystem::path::replace_filename (3) - std::experimental::filesystem::path::replace_filename
- std::experimental::filesystem::path::root_directory (3) - std::experimental::filesystem::path::root_directory
- std::experimental::filesystem::path::root_name (3) - std::experimental::filesystem::path::root_name
- std::experimental::filesystem::path::root_path (3) - std::experimental::filesystem::path::root_path
- std::experimental::filesystem::path::stem (3) - std::experimental::filesystem::path::stem
- std::experimental::filesystem::path::string,wstring,u8string,... (3) - std::experimental::filesystem::path::string,wstring,u8string,...
- std::experimental::filesystem::path::swap (3) - std::experimental::filesystem::path::swap
- std::experimental::filesystem::path::~path (3) - std::experimental::filesystem::path::~path
- std::experimental::filesystem::path (3) - std::experimental::filesystem::path
- std::experimental::filesystem::permissions (3) - std::experimental::filesystem::permissions
- std::experimental::filesystem::perms (3) - std::experimental::filesystem::perms
- std::experimental::filesystem::absolute,std::experimental::filesystem::system_complete (3) - std::experimental::filesystem::absolute,std::experimental::filesystem::system_complete
- std::experimental::filesystem::begin(directory_iterator), (3) - std::experimental::filesystem::begin(directory_iterator),
- std::experimental::filesystem::begin(directory_iterator),std::experimental::filesystem::end(directory_iterator) (3) - std::experimental::filesystem::begin(directory_iterator),std::experimental::filesystem::end(directory_iterator)