PStade.Oven 使ってみた

#include <iostream>
#include <vector>
#include <boost/lambda/lambda.hpp>
#include <boost/foreach.hpp>
#include <pstade/oven.hpp>

using namespace std;
using namespace boost::lambda;
using namespace pstade::oven;

#define foreach BOOST_FOREACH

int main()
{
    vector<int> v;

    v.push_back(3);
    v.push_back(1);
    v.push_back(4);

    foreach (int item, v|sorted|transformed(_1 + 1)) { // ソートして全要素に+1
        cout << item << endl;
    }
    // 2, 4, 5

    int value = v|front; // 先頭の値を取得
    cout << value << endl; // 3

    return 0;
}


Range-base ライブラリはわりと必須ですね