パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

boost::lambda を使ってみた

boost の中でも変態度高めの lambda を使ってみた。いまどきの PC ならそんなにコンパイルが遅くはならないかな、と。
引っかかったのは、関数オブジェクト(ファンクタ)の引数に対して、そのメンバ関数を呼ぶには、lambda::bind を使わないといけなさそうなところ(多分)。

#include <algorithm>
#include <string>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>

using namespace boost::lambda;

void test() {
    std::find_if(itemlist.begin(), itemlist.end(), (bind(&Item::getName, _1) == "aho"));
}

あと、& を付けないといけなかったり(こっちは、VC++2005 ならエラーメッセージで親切に教えてくれた)。