Namespaces
Variants

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

From cppreference.net
定義先ヘッダ <filesystem>
directory_iterator begin ( directory_iterator iter ) noexcept ;
(1) (C++17以降)
directory_iterator end ( directory_iterator ) noexcept ;
(2) (C++17以降)
1) iter を変更せずに返します。
2) デフォルト構築された directory_iterator を返します。これは終端イテレータとして機能します。引数は無視されます。

これらの非メンバ関数は、 directory_iterator を範囲ベースforループで使用できるようにし、 directory_iterator range 型にすることを可能にします (C++20以降)

目次

パラメータ

iter - a directory_iterator

戻り値

1) iter 変更なし。
2) 終了イテレータ(デフォルト構築された directory_iterator )。

#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");
}

出力例:

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

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 3480 C++17 end は引数を参照で受け取っていた 引数を値で受け取る

関連項目

範囲ベースforループサポート
(関数)