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.

### 2787. §[fs.file_status.cons] doesn't match class definition

Section: 31.12.9 [fs.class.file.status], 31.12.9.2 [fs.file.status.cons] Status: C++17 Submitter: Tim Song Opened: 2016-10-21 Last modified: 2021-06-06

Priority: 0

View all issues with C++17 status.

Discussion:

[fs.class.file_status] depicts:

>     explicit file_status(file_type ft = file_type::none, perms prms = perms::unknown) noexcept;

while [fs.file_status.cons] describes two constructors:

>     explicit file_status() noexcept;
>     explicit file_status(file_type ft, perms prms = perms::unknown) noexcept;

It's also not clear why the default constructor needs to be explicit. Unlike tag types, there doesn't seem to be a compelling reason to disallow constructing a `file_status` without naming the type.

[2016-11-12, Issaquah]

Sat AM: Priority 0; move to Ready

Proposed resolution:

This wording is relative to N4606.

1. Edit [fs.class.file_status] as indicated:

   >     class file_status {
   >     public:
   >       // 27.10.11.1, constructors and destructor:
   >       file_status() noexcept : file_status(file_type::none) {}
   >       explicit file_status(file_type ft = file_type::none,
   >                            perms prms = perms::unknown) noexcept;
   >       […]
   >     };

2. Edit [fs.file_status.cons] as indicated:

   >     explicit file_status() noexcept;

   > > -1- Postconditions: `type() == file_type::none` and `permissions() == perms::unknown`.