Title
copy_file(from, to, ...) has a number of unspecified error conditions
Status
c++17
Section
[fs.op.copy.file]
Submitter
Eric Fiselier

Created on 2016-05-10.00:00:00 last changed 81 months ago

Messages

Date: 2016-08-04.02:52:49

Proposed resolution:

This wording is relative to N4582.

  1. 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.
Date: 2016-08-04.02:52:49

[ 2016-08 Chicago ]

Wed AM: Move to Tentatively Ready

Date: 2016-05-15.00:00:00

[ 2016-05-28, Eric Fiselier provides wording ]

Date: 2017-02-02.00:41:18

[ 2016-05 Issues Telecon ]

Eric to provide wording.

Date: 2016-05-10.00:00:00

There are a number of error cases that copy_file(from, to, ...) does not take into account. Specifically the cases where:

  1. from does not exist
  2. from is not a regular file
  3. to exists and is not a regular file

These error cases should be specified as such.

History
Date User Action Args
2017-07-30 20:15:43adminsetstatus: wp -> c++17
2016-11-14 03:59:28adminsetstatus: pending -> wp
2016-11-14 03:55:22adminsetstatus: ready -> pending
2016-08-04 02:52:49adminsetmessages: + msg8385
2016-08-04 02:52:49adminsetstatus: new -> ready
2016-06-05 18:23:47adminsetmessages: + msg8165
2016-06-05 18:23:47adminsetmessages: + msg8164
2016-05-22 15:38:38adminsetmessages: + msg8145
2016-05-10 00:00:00admincreate