std::filesystem::directory_entry::is_regular_file(3)

NAME
std::filesystem::directory_entry::is_regular_file - std::filesystem::directory_entry::is_regular_file

Synopsis
   bool is_regular_file() const; (since C++17)
   bool is_regular_file( std::error_code& ec ) const noexcept;
   Checks whether the pointed-to object is a regular file. Effectively returns
   std::filesystem::is_regular_file(status()) or
   std::filesystem::is_regular_file(status(ec)), respectively.

Parameters
   ec - out-parameter for error reporting in the non-throwing overload

Return value
   true if the referred-to filesystem object is a regular file, false otherwise.

Exceptions
   The overload that does not take a std::error_code& parameter throws
   filesystem::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.

Example
// Run this code
 #include <filesystem>
 #include <iostream>
 #include <string>
 namespace fs = std::filesystem;
 int main(int argc, const char* argv[])
 {
     // Print out all regular files in a directory 'dir'.
     try {
         const auto dir = argc == 2
                        ? fs::path{ argv[1] }
                        : fs::current_path();
         std::cout << "Current dir: " << dir << '\n'
                   << std::string(40, '-') << '\n';
         for (fs::directory_entry const& entry : fs::directory_iterator(dir)) {
             if (entry.is_regular_file()) {
                 std::cout << entry.path().filename() << '\n';
             }
         }
     } catch(fs::filesystem_error const& e) {
         std::cout << e.what() << '\n';
     }
 }

Possible output:
 Current dir: "/tmp/1588616534.9884143"
 ----------------------------------------
 "main.cpp"
 "a.out"

See also
   is_regular_file checks whether the argument refers to a regular file
   (C++17) (function)