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) と同様であるが、 options std::filesystem::directory_options::skip_permission_denied が設定されており、構築中に権限拒否エラーが発生した場合、終了イテレータを構築し、エラーを報告しない。
6) コピーコンストラクタ。
7) ムーブコンストラクタ。

目次

パラメータ

p - ディレクトリイテレータが参照するファイルシステムオブジェクトへのパス
ec - 例外を投げないオーバーロードでのエラー報告用出力パラメータ
options - ディレクトリイテレータの動作を制御する BitmaskType オプションのセット
other - ディレクトリイテレータの初期化に使用するソースとしての別のディレクトリイテレータ

例外

noexcept でマークされていないオーバーロードは、 メモリ確保に失敗した場合 std::bad_alloc をスローする可能性があります。

2,3) 基盤となるOS APIエラーが発生した場合、 std::filesystem::filesystem_error をスローします。この例外は、 p を第一パス引数、OSエラーコードをエラーコード引数として構築されます。
4,5) OS API呼び出しが失敗した場合、 std:: error_code & パラメータをOS APIエラーコードに設定し、エラーが発生しなかった場合は ec. clear ( ) を実行します。

注記

現在のディレクトリを反復処理するには、イテレータを directory_iterator ( "." ) のように構築し、 directory_iterator ( "" ) のようにしてはいけません。

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 3013 C++17 error_code オーバーロードがnoexceptとマークされているがメモリを割り当てる可能性がある noexceptが削除された