Namespaces
Variants

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

From cppreference.net
헤더 파일에 정의됨 <filesystem>
recursive_directory_iterator begin ( recursive_directory_iterator iter ) noexcept ;
(1) (C++17부터)
recursive_directory_iterator end ( recursive_directory_iterator ) noexcept ;
(2) (C++17부터)
1) iter 를 변경 없이 반환합니다.
2) 기본 생성된 recursive_directory_iterator 를 반환하며, 이는 종료 반복자 역할을 합니다. 인수는 무시됩니다.

이 비멤버 함수들은 범위 기반 for 루프에서 recursive_directory_iterator 를 사용할 수 있게 해주며 recursive_directory_iterator range 타입으로 만듭니다 (C++20부터) .

목차

매개변수

iter - a recursive_directory_iterator

반환값

1) iter 변경되지 않음.
2) 끝 반복자 (기본 생성된 recursive_directory_iterator ).

예제

#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 << "OS 특정 명령어 'tree'를 사용한 디렉토리 구조 출력:\n";
    std::system("tree --noreport sandbox");
    std::cout << "\n디렉토리 이터레이터를 사용한 디렉토리 구조 출력:\n";
    for (auto& p : fs::recursive_directory_iterator("sandbox"))
        std::cout << p << '\n';
    fs::remove_all("sandbox");
}

가능한 출력:

OS 특정 명령어 'tree'를 사용한 디렉토리 구조 출력:
sandbox
├── a
│   └── b
├── file1.txt
└── syma -> a
디렉토리 이터레이터를 사용한 디렉토리 구조 출력:
"sandbox/syma"
"sandbox/file1.txt"
"sandbox/a"
"sandbox/a/b"

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3480 C++17 end 가 인수를 참조로 받음 인수를 값으로 받음

참고 항목

범위 기반 for 루프 지원
(함수)