boost::bindではまる
久しぶりにSTL, boostの世界に入ろうとしたら、はまりまくる。
ううーん、昔はどうやってやってたんだっけか?
class Updater : public std::unary_function< T, void > { public: void operator()(const T& t) { .... } }; typedef std::vector< Updater< Data > > Updaters; Updaters updaters; ... Updaters::iterator p = updaters.begin(); Updaters::iterator pend = updaters.end(); for_each(p, pend, bind(Updater::operator(), _1, data));
最後の一行が見事に失敗します。
for (; p != pend; p++) { (*p)(data); }
こうやって対処中。なんか格好悪いな。