在boost directory_iterator 示例中-如何列出不递归的目录文件(请参阅此答案)是示例代码
#include <boost/filesystem.hpp>
#include <boost/range/iterator_range.hpp>
#include <iostream>
...
using namespace boost::filesystem;
for(auto& entry : boost::make_iterator_range(directory_iterator(p), {}))
{
std::cout << entry << "\n";
}
(p
是类型boost::filesystem::path
。)
在查看文档make_iterator_range
后,我认为被调用的构造函数是这个:
template< class ForwardTraversalIterator >
iterator_range< ForwardTraversalIterator >
make_iterator_range( ForwardTraversalIterator Begin,
ForwardTraversalIterator End );
如果我是对的,那么上面代码示例中传递的第二个参数{}
, 似乎对应于任何容器的结尾,该容器被directory_iterator
.
我以前从未见过这种情况。
是否可以end
仅通过从空的初始值设定项列表中构造这样的迭代器来构造迭代器{}
?(我的措辞是否正确?)
鉴于如此构造的迭代器的类型必须与第一个迭代器的类型相匹配directory_iterator(p)
((这里是否进行模板参数推导?)