std::filesystem::directory_iterator::directory_iterator
De cppreference.com
<tbody>
</tbody>
directory_iterator() noexcept; |
(1) | (desde C++17) |
explicit directory_iterator( const std::filesystem::path& p ); |
(2) | (desde C++17) |
directory_iterator( const std::filesystem::path& p, std::filesystem::directory_options options); |
(3) | (desde C++17) |
directory_iterator( const std::filesystem::path& p, std::error_code& ec ); |
(4) | (desde C++17) |
directory_iterator( const std::filesystem::path& p, std::filesystem::directory_options options, std::error_code& ec ); |
(5) | (desde C++17) |
directory_iterator( const directory_iterator& ) = default; |
(6) | (desde C++17) |
directory_iterator( directory_iterator&& ) = default; |
(7) | (desde C++17) |
Construye un nuevo iterador de directorio.
1) Construye el iterador final.
2) Construye un iterador de directorio que se refiere a la primera entrada de directorio identificada por
p. Si p se refiere a un archivo que no existe o que no es un directorio, lanza std::filesystem::filesystem_error.3) Igual que (2), pero si std::filesystem::directory_options::skip_permission_denied se establece en
options y la construcción encuentra un error de permiso denegado, construye el iterador final y no informa que ocurrió un error.4) Construye un iterador de directorio que se refiere a la primera entrada de directorio identificada por
p. Si p se refiere a un archivo que no existe o que no es un directorio, devuelve el el iterador final y establece ec.5) Igual que (4), pero si std::filesystem::directory_options::skip_permission_denied se establece en
options y la construcción encuentra un error de permiso denegado, construye el iterador final y no informa que ocurrió un error.Parámetros
| Esta sección está incompleta |
Excepciones
2-5) La sobrecarga que no toma un parámetro
std::error_code& lanza filesystem::filesystem_error en los errores de la API del sistema operativo subyacente, construido con p como el primer argumento de la ruta de acceso y el código de error del sistema operativo como el argumento del código de error. La sobrecarga que toma un parámetro std::error_code& lo establece en el código de error de la API del sistema operativo si una llamada a la API del sistema operativo falla, y ejecuta ec.clear() si no ocurren errores. Cualquier sobrecarga que no está marcada con noexcept puede lanzar std::bad_alloc si la asignación de memoria falla.Notas
Para iterar sobre el directorio actual, construye el iterador de esta manera directory_iterator(".") en lugar de directory_iterator("").
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3013 | C++17 | La sobrecarga con error_code está marcada con noexcept pero puede asignar memoria.
|
Se eliminó noexcept.
|