Boost 1.46.0でFilesystemがデフォルトv3になったので、wdirectory_rangeは用意しない方針。
おそらく、移植が終わる頃にはv2はなくなっているはず。
#include <iostream> #include <utility> #include <boost/range/algorithm/for_each.hpp> #include <boost/range/directory_range.hpp> namespace fs = boost::filesystem; void disp(const fs::path& p) { if (is_directory(p)) std::cout << "*"; std::cout << p.filename() << std::endl; } int main() { const fs::path path = "C:\\Language\\cpp"; boost::for_each(boost::directory_range(path), disp); }
*"bin" "compile.bat" "compile03.bat" "compile45.bat" "compile46.bat" "coroutine.hpp" "create_svg_overlay.hpp" "create_svg_two.hpp" "main.cpp" "pngconv.bat" "preprocess.bat" "sample" "sample.exe" "setpath.bat" "tags" "test.h" "yield.hpp"
#include <iostream> #include <utility> #include <boost/range/algorithm/for_each.hpp> #include <boost/range/directory_range.hpp> namespace fs = boost::filesystem; void disp(const fs::path& p) { if (is_directory(p)) std::cout << "*"; std::cout << p.filename() << std::endl; } int main() { const fs::path path = "C:\\Language\\cpp"; boost::for_each(boost::recursive_directory_range(path), disp); }
*"bin" "config.log" *"gcc-4.5" *"debug" "main.o" "sample.exe" *"threading-multi" *"msvc-10.0" *"debug" "main.obj.rsp" "compile.bat" "compile03.bat" "compile45.bat" "compile46.bat" "coroutine.hpp" "create_svg_overlay.hpp" "create_svg_two.hpp" "main.cpp" "pngconv.bat" "preprocess.bat" "sample" "sample.exe" "setpath.bat" "tags" "test.h" "yield.hpp"
頭に「*」が付いているのがディレクトリです。
binはbjamで作成されたディレクトリ。