std::filesystem::recursive_directory_iterator::operator++, std::filesystem::recursive_directory_iterator::increment
| 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. Macht alle Kopien des vorherigen Wertes von *this ungültig.
Wenn keine weiteren Einträge im aktuell iterierten Verzeichnis mehr vorhanden sind, wird die Iteration im übergeordneten Verzeichnis fortgesetzt. Der Vorgang wird wiederholt, wenn das übergeordnete Verzeichnis keine Geschwistereinträge hat, die iteriert werden können. Wenn die Wurzel der rekursiv durchlaufenen Verzeichnishierarchie erreicht wird (es gibt keine Kandidateneinträge bei depth() == 0), wird *this auf einen End-Iterator gesetzt.
Andernfalls, wenn *this auf ein Verzeichnis verweist, wird in dieses hineiniteriert, wenn die folgenden Bedingungen erfüllt sind:
- disable_recursion_pending() wurde vor dieser Inkrementierung nicht aufgerufen, d.h. recursion_pending() == true.
- Das Verzeichnis ist kein Symlink oder das Verfolgen von Symlinks ist aktiviert, d.h. mindestens eine der folgenden Bedingungen ist erfüllt:
- !is_symlink((*this)->symlink_status()).
- (options() & directory_options::follow_directory_symlink) != directory_options::none)
Inhalt |
[bearbeiten] Parameter
| ec | - | Fehlercode, in dem der Fehlerstatus gespeichert wird |
[bearbeiten] Rückgabewert
*this
[bearbeiten] Ausnahmen
Jede Überladung, die nicht als noexcept markiert ist, kann std::bad_alloc auslösen, wenn die Speicherzuweisung fehlschlägt.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] 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 allokieren |
noexcept entfernt |