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.
Section: 31.12.13.5 [fs.op.copy.file] Status: C++17 Submitter: Eric Fiselier Opened: 2016-05-10 Last modified: 2021-06-06
Priority: 2
View all other issues in [fs.op.copy.file].
View all issues with C++17 status.
Discussion:
There are a number of error cases that copy_file(from, to, ...) does not take into account. Specifically the cases where:
These error cases should be specified as such.
[2016-05 Issues Telecon]
Eric to provide wording.
[2016-05-28, Eric Fiselier provides wording]
[2016-08 Chicago]
Wed AM: Move to Tentatively Ready
Proposed resolution:
This wording is relative to N4582.
Modify [fs.op.copy_file] as indicated:
bool copy_file(const path& from, const path& to, copy_options options); bool copy_file(const path& from, const path& to, copy_options options, error_code& ec) noexcept;-3- Requires: At most one constant from each copy_options option group (27.10.10.2) is present in options.
-4- Effects: Report a file already exists error as specified in Error reporting (27.5.6.5) if:
- !is_regular_file(from), or
- exists(to) and !is_regular_file(to), or
- exists(to) and equivalent(from, to), or
- exists(to) and (options & (copy_options::skip_existing | copy_options::overwrite_existing | copy_options::update_existing)) == copy_options::none.