是 C++17 std::filesystem::recursive_directory_iterator::pop 等于 boost::filesystem::recursive_directory_iterator::no_push
is C++17 std::filesystem::recursive_directory_iterator::pop equal to boost::filesystem::recursive_directory_iterator::no_push
由于 C++17 std::filesystem
与 boost::filesystem
非常相似,我试图做同样的事情:Escaping some Directories in iteration
但是我发现在std::filesystem::recursive_directory_iterator
中没有实现no_push
方法,最接近的是pop
方法,但是它们在功能上是否完全相同?
no_push()
或 no_push(true)
等价于 disable_recursion_pending()
。
没有 no_push(false)
的等价物。
它们完全不同。 std::filesystem::recursive_directory_iterator::pop
Moves the iterator one level up in the directory hierarchy.
其中 boost::filesystem::recursive_directory::no_push
Prevents the next iteration on a directory from moving into that directory.
no_push
不会更改当前迭代器,而 pop
会向上移动迭代器。 Boost 还有一个 pop
方法,与标准方法相同。
标准有选项,如果没有它们,它将不会迭代符号链接文件夹,而您可以使用 no_posh
和 boost 来避免迭代到符号链接文件夹。
由于 C++17 std::filesystem
与 boost::filesystem
非常相似,我试图做同样的事情:Escaping some Directories in iteration
但是我发现在std::filesystem::recursive_directory_iterator
中没有实现no_push
方法,最接近的是pop
方法,但是它们在功能上是否完全相同?
no_push()
或 no_push(true)
等价于 disable_recursion_pending()
。
没有 no_push(false)
的等价物。
它们完全不同。 std::filesystem::recursive_directory_iterator::pop
Moves the iterator one level up in the directory hierarchy.
其中 boost::filesystem::recursive_directory::no_push
Prevents the next iteration on a directory from moving into that directory.
no_push
不会更改当前迭代器,而 pop
会向上移动迭代器。 Boost 还有一个 pop
方法,与标准方法相同。
标准有选项,如果没有它们,它将不会迭代符号链接文件夹,而您可以使用 no_posh
和 boost 来避免迭代到符号链接文件夹。