std::filesystem::directory_iterator:: directory_iterator
From ja.cppreference.net
<
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)
と同様であるが、
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が削除された |