void assign(const path& p);
void assign(const path& p, error_code& ec);
Effects: Equivalent to pathobject = p, then refresh() or refresh(ec), respectively. If an error occurs, the values of any cached attributes are unspecified.
Throws: As specified in [fs.err.report].
void replace_filename(const path& p);
void replace_filename(const path& p, error_code& ec);
Effects: Equivalent to pathobject.replace_filename(p), then refresh() or refresh(ec), respectively. If an error occurs, the values of any cached attributes are unspecified.
Throws: As specified in [fs.err.report].
void refresh();
void refresh(error_code& ec) noexcept;
Effects: Stores the current values of any cached attributes of the file p resolves to. If an error occurs, an error is reported ([fs.err.report]) and the values of any cached attributes are unspecified.
Throws: As specified in [fs.err.report].
[ Note: Implementations of directory_iterator ([fs.class.directory_iterator]) are prohibited from directly or indirectly calling the refresh function since it must access the external file system, and the objective of caching is to avoid unnecessary file system accesses. — end note ]