30 Input/output library [input.output]

30.10 File systems [filesystems]

30.10.12 Class directory_­entry [fs.class.directory_entry]

30.10.12.2 directory_­entry modifiers [fs.dir.entry.mods]

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 ]