std::filesystem::directory_iterator::directory_iterator
From cppreference.com
< cpp | filesystem | directory iterator
| directory_iterator() noexcept; |
(1) | (C++17以降) |
| explicit directory_iterator( const std::filesystem::path& p ); |
(2) | (C++17以降) |
| directory_iterator( const std::filesystem::path& p, std::filesystem::directory_options options ); |
(3) | (C++17以降) |
| directory_iterator( const std::filesystem::path& p, std::error_code& ec ); |
(4) | (C++17以降) |
| directory_iterator( const std::filesystem::path& p, std::filesystem::directory_options options, |
(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) と同じですが、
optionsにstd::filesystem::directory_options::skip_permission_deniedが設定されており、構築中にアクセス権拒否エラーが発生した場合、末尾イテレータを構築し、エラーを報告しません。4)
pで識別されるディレクトリの最初のディレクトリエントリを参照するディレクトリイテレータを構築します。pが存在しないファイルまたはディレクトリではないものを参照する場合、末尾イテレータを返し、ecを設定します。5) (4) と同じですが、
optionsにstd::filesystem::directory_options::skip_permission_deniedが設定されており、構築中にアクセス権拒否エラーが発生した場合、末尾イテレータを構築し、エラーを報告しません。6) コピーコンストラクタ。
7) ムーブコンストラクタ。
目次 |
[編集] パラメータ
| p | - | ディレクトリイテレータが参照するファイルシステムオブジェクトへのパス |
| エラーコード | - | 例外を投げないオーバーロードでのエラー報告用アウトパラメータ |
| options | - | ディレクトリイテレータの動作を制御するBitmaskTypeオプションのセット |
| その他 | - | ディレクトリイテレータを初期化するために使用する別のディレクトリイテレータ |
[編集] 例外
noexcept とマークされていないオーバーロードは、メモリ割り当てが失敗した場合に std::bad_alloc をスローする可能性があります。
2,3) 下位OS APIエラーが発生した場合、std::filesystem::filesystem_errorをスローします。これは、最初のパス引数としてp、エラーコード引数としてOSエラーコードで構築されます。
[編集] 注記
現在のディレクトリを反復処理するには、directory_iterator("") の代わりに directory_iterator(".") としてイテレータを構築してください。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3013 | C++17 | error_code オーバーロードは noexcept とマークされていますが、メモリを割り当てる可能性があります。 |
noexcept 削除 |