2007-05-30 [長年日記]

[Q3] [C++] boost 1.34.0

boostもboost 1.34.0に更新してみました。

古いコンパイラのせいで使えなかった、bindを使った関数合成や、lambdaなどなども心おきなく使えそうです。

ところで、1.33.0から入っていたようですが、

std::find_if(v.begin(), v.end(),
  boost::bind(std::equal_to<int>(), boost::bind(&X::get, _1), 5));

は、

std::find_if(v.begin(), v.end(),
  boost::bind(boost::bind(&X::get, _1) == 5);

と書けたり、

std::sort(v.begin(), v.end(),
  boost::bind(std::less<int>(),
    boost::bind(&X::get, _1),
    boost::bind(&X::get, _2)));

は、

std::sort(v.begin(), v.end(),
  boost::bind(&X::get, _1) < boost::bind(&X::get, _2));

と書けたりするようになったのですね。微妙にboost::lambdaを取り入れた感じです。


トップ «前の日記(2007-05-28) 最新 次の日記(2007-06-01)»