path proximate(const path& p, error_code& ec);
Throws: As specified in [fs.err.report].
path proximate(const path& p, const path& base = current_path());
path proximate(const path& p, const path& base, error_code& ec);
Returns: For the first form:
weakly_canonical(p).lexically_proximate(weakly_canonical(base));
For the second form:
weakly_canonical(p, ec).lexically_proximate(weakly_canonical(base, ec));
or path() at the first error occurrence, if any.
Throws: As specified in [fs.err.report].