std::filesystem:: begin (recursive_directory_iterator) , std::filesystem:: end (recursive_directory_iterator)
From cppreference.net
<
cpp
|
filesystem
|
recursive directory iterator
|
헤더 파일에 정의됨
<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 루프 지원
(함수) |