Namespaces
Variants

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

From cppreference.net
Défini dans l'en-tête <filesystem>
directory_iterator begin ( directory_iterator iter ) noexcept ;
(1) (depuis C++17)
directory_iterator end ( directory_iterator ) noexcept ;
(2) (depuis C++17)
1) Retourne iter inchangé.
2) Retourne un 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 directory_iterator avec les boucles for basées sur des intervalles et font du directory_iterator un type range (depuis C++20) .

Table des matières

Paramètres

iter - un directory_iterator

Valeur de retour

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

Exemple

#include <filesystem>
#include <fstream>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    fs::create_directories("sandbox/a/b");
    std::ofstream("sandbox/file1.txt");
    std::ofstream("sandbox/file2.txt");
    for (auto& p : fs::directory_iterator("sandbox"))
        std::cout << p << '\n';
    fs::remove_all("sandbox");
}

Sortie possible :

"sandbox/a"
"sandbox/file1.txt"
"sandbox/file2.txt"

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)