namespace std::filesystem {
  class file_status {
  public:
        file_status() noexcept : file_status(file_type::none) {}
    explicit file_status(file_type ft,
                         perms prms = perms::unknown) noexcept;
    file_status(const file_status&) noexcept = default;
    file_status(file_status&&) noexcept = default;
    ~file_status();
        file_status& operator=(const file_status&) noexcept = default;
    file_status& operator=(file_status&&) noexcept = default;
        void       type(file_type ft) noexcept;
    void       permissions(perms prms) noexcept;
        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
.explicit file_status(file_type ft, perms prms = perms::unknown) noexcept;
Postconditions: type() == ft and 
permissions() == prms. 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
. void type(file_type ft) noexcept;
Postconditions: type() == ft. void permissions(perms prms) noexcept;
Postconditions: permissions() == prms.