Namespaces
Variants

std::filesystem::recursive_directory_iterator:: operator++, std::filesystem::recursive_directory_iterator:: increment

From cppreference.net
recursive_directory_iterator & operator ++ ( ) ;
(1) (C++17 이후)
recursive_directory_iterator & increment ( std:: error_code & ec ) ;
(2) (C++17 이후)

반복자를 다음 항목으로 진행시킵니다. * this 의 이전 값에 대한 모든 복사본을 무효화합니다.

현재 순회 중인 디렉토리에 더 이상 항목이 없으면 상위 디렉토리에서 순회가 재개됩니다. 상위 디렉토리에 순회 가능한 형제 항목이 없는 경우 이 과정이 반복됩니다. 재귀적으로 순회된 디렉토리 계층 구조의 부모에 도달하면( depth ( ) == 0 ) 에 후보 항목이 없는 경우), * this 는 끝 반복자로 설정됩니다.

그렇지 않으면, * this 가 디렉토리를 참조하는 경우, 다음 조건이 충족되면 해당 디렉토리로 순회됩니다:

  • disable_recursion_pending() 이 증가 연산 전에 호출되지 않았으며, 즉 recursion_pending ( ) == true 입니다.
  • 디렉토리가 심볼릭 링크가 아니거나 심볼릭 링크 따라하기가 활성화된 경우, 즉 다음 중 적어도 하나가 참인 경우:
    • ! is_symlink ( ( * this ) - > symlink_status ( ) ) .
    • ( options ( ) & directory_options :: follow_directory_symlink ) ! = directory_options :: none )

목차

매개변수

ec - 오류 상태를 저장할 에러 코드

반환 값

* this

예외

noexcept 로 표시되지 않은 모든 오버로드는 메모리 할당이 실패할 경우 std::bad_alloc 을(를) throw할 수 있습니다.

1) 기본 OS API 오류 발생 시 std::filesystem::filesystem_error 를 발생시킵니다. 이는 OS 오류 코드를 error code 인수로 사용하여 생성됩니다.
2) OS API 호출이 실패할 경우 std:: error_code & 매개변수를 OS API 오류 코드로 설정하고, 오류가 발생하지 않을 경우 ec. clear ( ) 를 실행합니다.

예제

결함 보고서

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

DR 적용 대상 게시된 동작 올바른 동작
LWG 3013 C++17 error_code 오버로드가 noexcept로 표시되었으나 메모리를 할당할 수 있음 noexcept 제거됨