[fs.op.is.empty]
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.
Otherwise, return itr == directory_iterator().
Otherwise:
Determine uintmax_t sz, as if by file_size(p) or file_size(p, ec), respectively.
Otherwise, return sz == 0.