Namespaces
Variants

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

From cppreference.net
recursive_directory_iterator & operator ++ ( ) ;
(1) (seit C++17)
recursive_directory_iterator & increment ( std:: error_code & ec ) ;
(2) (seit C++17)

Setzt den Iterator auf den nächsten Eintrag fort. Macht alle Kopien des vorherigen Werts von * this ungültig.

Wenn keine weiteren Einträge im aktuell durchlaufenen Verzeichnis vorhanden sind, wird die Iteration über das übergeordnete Verzeichnis fortgesetzt. Der Vorgang wird wiederholt, wenn das übergeordnete Verzeichnis keine Geschwistereinträge hat, die durchlaufen werden können. Wenn das Elternelement der Verzeichnishierarchie erreicht wird, die rekursiv durchlaufen wurde (es gibt keine Kandidateneinträge bei depth ( ) == 0 ) , * this wird auf einen End-Iterator gesetzt.

Andernfalls, wenn * this auf ein Verzeichnis verweist, wird hinein iteriert, wenn die folgenden Bedingungen erfüllt sind:

  • disable_recursion_pending() wurde vor diesem Inkrement nicht aufgerufen, d.h. recursion_pending ( ) == true .
  • Das Verzeichnis ist kein Symlink oder das Folgen von Symlinks ist aktiviert, d.h. mindestens eine der folgenden Bedingungen ist wahr:
    • ! is_symlink ( ( * this ) - > symlink_status ( ) ) .
    • ( options ( ) & directory_options :: follow_directory_symlink ) ! = directory_options :: none )

Inhaltsverzeichnis

Parameter

ec - Fehlercode, in dem der Fehlerstatus gespeichert wird

Rückgabewert

* this

Ausnahmen

Jede Überladung, die nicht als noexcept gekennzeichnet ist, kann std::bad_alloc auslösen, wenn die Speicherzuweisung fehlschlägt.

1) Wirft std::filesystem::filesystem_error bei zugrundeliegenden OS-API-Fehlern, konstruiert mit dem OS-Fehlercode als Fehlercode-Argument.
2) Setzt einen std:: error_code & Parameter auf den OS-API-Fehlercode, falls ein OS-API-Aufruf fehlschlägt, und führt ec. clear ( ) aus, falls keine Fehler auftreten.

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3013 C++17 error_code Überladung als noexcept markiert, kann aber Speicher allozieren noexcept entfernt