27 Input/output library [input.output]

27.10 File systems [filesystems]

27.10.11 Class file_status [class.file_status]

namespace std::filesystem {
  class file_status {
  public:
    // [file_status.cons], constructors and destructor
    explicit file_status(file_type ft = file_type::none,
                         perms prms = perms::unknown) noexcept;
    file_status(const file_status&) noexcept = default;
    file_status(file_status&&) noexcept = default;
   ~file_status();

    // assignments:
    file_status& operator=(const file_status&) noexcept = default;
    file_status& operator=(file_status&&) noexcept = default;

    // [file_status.mods], modifiers
    void       type(file_type ft) noexcept;
    void       permissions(perms prms) noexcept;

    // [file_status.obs], observers
    file_type  type() const noexcept;
    perms      permissions() const noexcept;
  };
}

An object of type file_status stores information about the type and permissions of a file.

27.10.11.1 file_status constructors [file_status.cons]

explicit file_status() noexcept;

Postconditions: type() == file_type::none and permissions() == perms::unknown.

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

Postconditions: type() == ft and permissions() == prms.

27.10.11.2 file_status observers [file_status.obs]

file_type type() const noexcept;

Returns: The value of type() specified by the postconditions of the most recent call to a constructor, operator=, or type(file_type) function.

perms permissions() const noexcept;

Returns: The value of permissions() specified by the postconditions of the most recent call to a constructor, operator=, or permissions(perms) function.

27.10.11.3 file_status modifiers [file_status.mods]

void type(file_type ft) noexcept;

Postconditions: type() == ft.

void permissions(perms prms) noexcept;

Postconditions: permissions() == prms.