Espacios de nombres
Variantes
Acciones

std::filesystem::recursive_directory_iterator::operator++, std::filesystem::recursive_directory_iterator::increment

De cppreference.com
 
 
 
 
recursive_directory_iterator& operator++();
(desde C++17)
recursive_directory_iterator& increment( std::error_code& ec );
(desde C++17)

Avanza el iterador a la próxima entrada. Invalida todas las copias del valor anterior de *this.

Si no quedan más entradas en el directorio iterado actualmente, la iteración se reanuda en el directorio padre. El proceso se repite si el directorio principal no tiene entradas hermanas en las que se pueda iterar. Si se alcanza el padre de la jerarquía de directorios que se ha iterado de forma recursiva (no hay entradas candidatas en depth() == 0), *this se establece en un iterador final.

De lo contrario, si *this se refiere a un directorio, se repite la iteración si se cumplen las siguientes condiciones:

  • disable_recursion_pending() no se ha llamado antes de este incremento, es decir, recursion_pending() == true.
  • El directorio no es un enlace simbólico o los siguientes enlaces simbólicos están habilitados, es decir, al menos uno de los siguientes es verdadero:
    • !is_symlink((*this)->symlink_status()).
    • (options() & directory_options::follow_directory_symlink) != directory_options::none)

Contenido

[editar] Parámetros

ec - El código de error en el que almacenar el estado de error.

[editar] Valor de retorno

*this

[editar] Excepciones

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 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.

[editar] 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.