Namespaces
Variants

std::filesystem:: begin (recursive_directory_iterator) , std::filesystem:: end (recursive_directory_iterator)

From cppreference.net
Défini dans l'en-tête <filesystem>
recursive_directory_iterator begin ( recursive_directory_iterator iter ) noexcept ;
(1) (depuis C++17)
recursive_directory_iterator end ( recursive_directory_iterator ) noexcept ;
(2) (depuis C++17)
1) Retourne iter inchangé.
2) Retourne un recursive_directory_iterator construit par défaut, qui sert d'itérateur de fin. L'argument est ignoré.

Ces fonctions non membres permettent l'utilisation des recursive_directory_iterator avec les boucles for basées sur des intervalles et font du recursive_directory_iterator un type range (depuis C++20) .

Table des matières

Paramètres

iter - un recursive_directory_iterator

Valeur de retour

1) iter inchangé.
2) Itérateur de fin (construit par défaut recursive_directory_iterator ).

Exemple

#include <cstdlib>
#include <filesystem>
#include <fstream>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    fs::current_path(fs::temp_directory_path());
    fs::create_directories("sandbox/a/b");
    std::ofstream("sandbox/file1.txt");
    fs::create_symlink("a", "sandbox/syma");
    std::cout << "Affichage de la structure de répertoire avec la commande système 'tree' :\n";
    std::system("tree --noreport sandbox");
    std::cout << "\nAffichage de la structure de répertoire avec l'itérateur de répertoire :\n";
    for (auto& p : fs::recursive_directory_iterator("sandbox"))
        std::cout << p << '\n';
    fs::remove_all("sandbox");
}

Sortie possible :

Affichage de la structure de répertoire avec la commande système 'tree' :
sandbox
├── a
│   └── b
├── file1.txt
└── syma -> a
Affichage de la structure de répertoire avec l'itérateur de répertoire :
"sandbox/syma"
"sandbox/file1.txt"
"sandbox/a"
"sandbox/a/b"

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 3480 C++17 end prenait l'argument par référence prend l'argument par valeur

Voir aussi

prise en charge de la boucle for basée sur des intervalles
(fonction)