例によってまだリリースはしていませんが、Boost 1.44.0 + GCC 4.5で以下のコードが動作するようになりました。
リポジトリから取得してきてください。
#define BOOST_RESULT_OF_USE_DECLTYPE #include <iostream> #include <vector> #include <pstade/oven/filtered.hpp> #include <pstade/oven/regular.hpp> #include <pstade/oven/io.hpp> namespace oven = pstade::oven; int main() { const std::vector<int> v = {1, 2, 3, 4, 5}; std::cout << (v | oven::filtered(oven::regular([](int x) { return x % 2 == 0; }))) << std::endl; }
{2,4}
VC10は、Boost側のresult_ofが非対応のため、ラムダ式を使用することはできません。
次は日本語ドキュメントの作成にとりかかります。
Boost.Book覚えないと・・・。