std::filesystem::recursive_directory_iterator:: operator++, std::filesystem::recursive_directory_iterator:: increment
|
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
при неудачном выделении памяти.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчёты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам 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 удален |