2673. status() effects cannot be implemented as specified

Section: 30.11.14.35 [fs.op.status] Status: C++17 Submitter: Jonathan Wakely Opened: 2015-09-15 Last modified: 2017-07-30

Priority: 0

View all other issues in [fs.op.status].

View all issues with C++17 status.

Discussion:

30.11.14.35 [fs.op.status] paragraph 2 says:

Effects: As if:

error_code ec;
file_status result = status(p, ec);
if (result == file_type::none)
...

This won't compile, there is no comparison operator for file_status and file_type, and the conversion from file_type to file_status is explicit.

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

Proposed resolution:

Change 30.11.14.35 [fs.op.status] paragraph 2:

Effects: As if:

error_code ec;
file_status result = status(p, ec);
if (result.type() == file_type::none)
...