11228--filtered-recursive_directory_iterator-range.cpp 599 B

12345678910111213141516171819202122232425
  1. #include <boost/filesystem.hpp>
  2. #include <boost/range.hpp>
  3. #include <boost/range/algorithm.hpp>
  4. #include <boost/range/adaptors.hpp>
  5. #include <vector>
  6. #include <iostream>
  7. namespace fs = boost::filesystem;
  8. using namespace boost::adaptors;
  9. int main() {
  10. fs::recursive_directory_iterator beg("."), end;
  11. auto fileFilter = [](fs::path const & path)
  12. {
  13. return is_regular_file(path);
  14. };
  15. std::vector<fs::path> paths;
  16. copy(boost::make_iterator_range(beg, end) | filtered(fileFilter),
  17. std::back_inserter(paths));
  18. for(auto& p : paths)
  19. std::cout << p << "\n";
  20. }