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 | 适用范围 | 发布时的行为 | 正确行为 |
|---|---|---|---|
| LWG 3013 | C++17 |
error_code
重载标记为 noexcept 但可能分配内存
|
移除 noexcept |