oven::directory_rangeをBoost.Filesystem v3に対応(v2も使えます)、
removed Rangeアダプタを追加し、コミットしました。(リリースはしてない)
こんな感じで使えます。
#define BOOST_FILESYSTEM_VERSION 3 #include <iostream> #include <pstade/oven/filtered.hpp> #include <pstade/oven/removed.hpp> #include <pstade/oven/algorithm.hpp> #include <pstade/oven/initial_values.hpp> #include <pstade/oven/directory_range.hpp> namespace oven = pstade::oven; namespace fs = boost::filesystem; struct is_directory_functor { typedef bool result_type; bool operator()(const fs::path& p) const { return fs::is_directory(p); } }; int main() { oven::for_each(oven::directory_range("C:\\test") | oven::removed(is_directory_functor()), [](const fs::path& p) { std::cout << p.filename() << std::endl; }); }
ここでは、C:\testディレクトリ内の、ディレクトリを除いたファイルを列挙してます。