table of contents
std::filesystem::directory_iterator::directory_iterator(3) | C++ Standard Libary | std::filesystem::directory_iterator::directory_iterator(3) |
NAME¶
std::filesystem::directory_iterator::directory_iterator - std::filesystem::directory_iterator::directory_iterator
Synopsis¶
directory_iterator() noexcept; (1) (since C++17)
explicit directory_iterator( const std::filesystem::path& p ); (2)
(since C++17)
directory_iterator( const std::filesystem::path& p, (3) (since
C++17)
std::filesystem::directory_options options);
directory_iterator( const std::filesystem::path& p, (4) (since
C++17)
std::error_code& ec );
directory_iterator( const std::filesystem::path& p,
std::filesystem::directory_options options, (5) (since
C++17)
std::error_code& ec );
directory_iterator( const directory_iterator& ) = default; (6)
(since C++17)
directory_iterator( directory_iterator&& ) = default; (7)
(since C++17)
Constructs a new directory iterator.
1) Constructs the end iterator.
2) Constructs a directory iterator that refers to the first directory entry
of a
directory identified by p. If p refers to an non-existing file or not a
directory,
throws std::filesystem::filesystem_error.
3) Same as (2), but if
std::filesystem::directory_options::skip_permission_denied is
set in options and construction encounters a permissions denied error,
constructs
the end iterator and does not report an error.
4) Constructs a directory iterator that refers to the first directory entry
of a
directory identified by p. If p refers to an non-existing file or not a
directory,
returns the end iterator and sets ec.
5) Same as (4), but if
std::filesystem::directory_options::skip_permission_denied is
set in options and construction encounters a permissions denied error,
constructs
the end iterator and does not report an error.
Parameters¶
This section is incomplete
Exceptions¶
2-5) 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.
Notes¶
To iterate over the current directory, construct the iterator as
directory_iterator(".") instead of
directory_iterator("").
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 noexcept removed
allocate memory
2022.07.31 | http://cppreference.com |