std::filesystem::recursive_directory_iterator::operator++, std::filesystem::recursive_directory_iterator::increment
From cppreference.com
| 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)
目次 |
[編集] パラメータ
| エラーコード | - | エラー状態を格納するためのエラーコード |
[編集] 戻り値
*this
[編集] 例外
noexcept とマークされていないオーバーロードは、メモリ割り当てが失敗した場合に std::bad_alloc をスローする可能性があります。
1) 基盤となるOS APIエラーが発生した場合、 std::filesystem::filesystem_error をスローします。この例外は、OSエラーコードをエラーコード引数として構築されます。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3013 | C++17 | error_code オーバーロードは noexcept とマークされていますが、メモリを割り当てる可能性があります。 |
noexcept 削除 |