29 Input/output library [input.output]

29.12 File systems [filesystems]

29.12.13 Filesystem operation functions [fs.op.funcs]

29.12.13.30 Relative [fs.op.relative]

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