Namespaces
Variants

std::filesystem::directory_iterator:: directory_iterator

From cppreference.net
directory_iterator ( ) noexcept ;
(1) (начиная с C++17)
explicit directory_iterator ( const std:: filesystem :: path & p ) ;
(2) (начиная с C++17)
(3) (начиная с C++17)
directory_iterator ( const std:: filesystem :: path & p, std:: error_code & ec ) ;
(4) (начиная с C++17)
(5) (начиная с C++17)
directory_iterator ( const directory_iterator & other ) = default ;
(6) (начиная с C++17)
directory_iterator ( directory_iterator && other ) = default ;
(7) (начиная с C++17)

Создает новый итератор каталога.

1) Создает конечный итератор.
2) Создает итератор каталога, который ссылается на первую запись каталога, идентифицированного через p . Если p ссылается на несуществующий файл или не является каталогом, выбрасывается std::filesystem::filesystem_error .
3) Аналогично (2) , но если std::filesystem::directory_options::skip_permission_denied установлен в options и при построении возникает ошибка доступа, конструирует конечный итератор и не сообщает об ошибке.
4) Создает итератор каталога, который ссылается на первую запись каталога, идентифицированного через p . Если p ссылается на несуществующий файл или не является каталогом, возвращает конечный итератор и устанавливает ec .
5) То же, что и (4) , но если std::filesystem::directory_options::skip_permission_denied установлен в options и при конструировании возникает ошибка доступа, конструирует конечный итератор и не сообщает об ошибке.
6) Конструктор копирования.
7) Конструктор перемещения.

Содержание

Параметры

p - путь к объекту файловой системы, на который будет ссылаться итератор директории
ec - выходной параметр для сообщения об ошибках в непорождающих перегрузках
options - набор BitmaskType опций, которые управляют поведением итератора директории
other - другой итератор директории, используемый в качестве источника для инициализации итератора директории

Исключения

Любая перегрузка, не помеченная noexcept , может выбрасывать std::bad_alloc при неудачном выделении памяти.

2,3) Выбрасывает std::filesystem::filesystem_error при ошибках базового API ОС, созданный с p в качестве первого аргумента пути и кодом ошибки ОС в качестве аргумента кода ошибки.
4,5) Устанавливает параметр std:: error_code & в код ошибки API ОС при неудачном вызове API ОС и выполняет ec. clear ( ) при отсутствии ошибок.

Примечания

Для итерации по текущему каталогу создайте итератор как directory_iterator ( "." ) вместо directory_iterator ( "" ) .

Пример

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3013 C++17 error_code overload marked noexcept but can allocate memory noexcept removed
Перевод текста на веб-странице на Русский:
DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 3013 C++17 error_code перегрузка помечена как noexcept, но может выделять память noexcept удален