Effects: If:
- root_name() != base.root_name() is true, or
- is_absolute() != base.is_absolute() is true, or
- !has_root_directory() && base.has_root_directory() is true, or
- any filename in
relative_path() or base.relative_path()
can be interpreted as a root-name,
returns 
path().   
Determines the first mismatched element of *this and base
as if by:
auto [a, b] = mismatch(begin(), end(), base.begin(), base.end());
 
Then,
- if a == end() and b == base.end(), returns path("."); otherwise 
- let  n-  be the number of  filename-  elements in [ b, base.end()- )
  that are not dot or dot-dot or empty, minus the number that are dot-dot .
- If n<0, returns path(); otherwise 
- if n == 0 and (a == end() || a->empty()),
  returns path("."); otherwise 
- returns an object of class  path-  that is default-constructed, followed by
 - application of operator/=(path(".."))
  n times, and then
- application of operator/=
  for each element in [a, end()).