bool is_empty(const path& p);
bool is_empty(const path& p, error_code& ec) noexcept;
Effects:
Determine file_status s, as if by status(p) or status(p, ec), respectively.
For the signature with argument ec, return false if an error occurred.
Otherwise, if is_directory(s):
Create a variable itr, as if by directory_iterator itr(p) or directory_iterator itr(p, ec), respectively.
For the signature with argument ec, return false if an error occurred.
Otherwise, return itr == directory_iterator().
Otherwise:
Determine uintmax_t sz, as if by file_size(p) or file_size(p, ec), respectively.
For the signature with argument ec, return false if an error occurred.
Otherwise, return sz == 0.
Throws: As specified in [fs.err.report].