This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++17 status.

### 2670. `system_complete` refers to undefined variable 'base'

Section: 99 [fs.op.system_complete] Status: C++17 Submitter: Jonathan Wakely Opened: 2014-07-20 Last modified: 2017-07-30

Priority: 0

View all issues with C++17 status.

Discussion:

The example says "...or `p` and `base` have the same `root_name()`.", but `base` is not defined. I believe it refers to the value returned by `current_path()`.

[Apr 2016 Issue updated to address the C++ Working Paper. Previously addressed File System TS]

Proposed resolution:

Change 99 [fs.op.system_complete] as indicated:

> For Windows based operating systems, `system_complete(p)` has the same semantics as `absolute(p, current_path())` if `p.is_absolute() || !p.has_root_name()` or `p` and `base current_path()` have the same `root_name()`. Otherwise it acts like `absolute(p, cwd)` is the current directory for the `p.root_name()` drive. This will be the current directory for that drive the last time it was set, and thus may be residue left over from a prior program run by the command processor. Although these semantics are useful, they may be surprising.