31 Input/output library [input.output]

31.12 File systems [filesystems]

31.12.13 Filesystem operation functions [fs.op.funcs] Canonical [fs.op.canonical]

path filesystem::canonical(const path& p); path filesystem::canonical(const path& p, error_code& ec);
Effects: Converts p to an absolute path that has no symbolic link, dot, or dot-dot elements in its pathname in the generic format.
Returns: A path that refers to the same file system object as absolute(p).
The signature with argument ec returns path() if an error occurs.
Throws: As specified in [fs.err.report].
Remarks: !exists(p) is an error.