Defined in header <filesystem>
bool is_empty( const std::filesystem::path& p );
bool is_empty( const std::filesystem::path& p, std::error_code& ec );
(since C++17)

Checks whether the given path refers to an empty file or directory.


p - path to examine
ec - error code to modify in case of error

Return value

true if the file indicated by p or if the type indicated s refers to an empty file or directory, false otherwise. The non-throwing overload returns false if an error occurs.


The overload that does not take a std::error_code& parameter throws filesystem_error on underlying OS API errors, constructed with p as the first path argument and the OS error code as the error code argument. The overload taking a std::error_code& parameter sets it to the OS API error code if an OS API call fails, and executes ec.clear() if no errors occur. Any overload not marked noexcept may throw std::bad_alloc if memory allocation fails.

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 3013 C++17 error_code overload marked noexcept but can allocate memory noexcept removed


See also

determines file attributes
determines file attributes, checking the symlink target
checks whether path refers to existing file system object

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.