if_
以下のことをやりたいのですが,できません.
というか寝ますので今日やったことをまとめてみただけです.
ちなみに今日は12時間程MHFをやっていましたwww
多分明日はやらないかなぁ.
#include <algorithm> #include <map> #include <boost/lambda/bind.hpp> #include <boost/lambda/if.hpp> namespace bll = boost::lambda; int main(){ // void object::draw() const; // bool object::flag() const; typedef std::map<int, object> my_map; typedef my_map::value_type my_pair; std::map<int, object> obj; std::for_each(obj.begin(), obj.end(), bll::if_( bll::bind(&object::flag, bll::_1)() )[ // ここ bll::bind( &object::draw, bll::bind( &my_pair::second, _1 ) ) ] ); return 0; } // こう // bll::if_( bll::make_const(true) )[ // やりたいこと std::map<int, object>::const_iterator it = obj.begin(); for(; it != obj.end(); ++it){ if(it->second.flag()) it->second.draw(); }
「ここ」を「こう」にすると動きました.
何か別のやつがあるのかね.
それとも無理なのかなぁ.
でもこの場合だと逆に「やりたいこと」の方が見やすいね.
さてGP本でも読みながら寝ます.
今2章が終わって,とばして5, 6章を見てます.