void disable_recursion_pending();
概要
再帰を止める。
効果
ディレクトリパスを指している際にこの関数を呼び出すことによって、そのディレクトリに入らないようになる。
事後条件
recursion_pending() == false
例
#include <iostream>
#include <filesystem>
#include <fstream>
namespace fs = std::filesystem;
int main()
{
fs::create_directory("dir");
std::ofstream{"dir/a.txt"};
fs::create_directory("dir/inner_dir");
std::ofstream{"dir/inner_dir/b.txt"};
fs::recursive_directory_iterator it{"dir"};
fs::recursive_directory_iterator last{};
std::cout << std::boolalpha;
for (; it != last; ++it) {
if (it->path().filename() == "inner_dir")
it.disable_recursion_pending();
std::cout << it->path() << " : " << it.recursion_pending() << std::endl;
}
}
出力例
"dir/inner_dir" : false
"dir/a.txt" : true
バージョン
言語
- C++17
処理系
- Clang: 7.0 ✅
- GCC: 8.1 ✅
- Visual C++: