for_eachでメンバ関数を呼び出す方法
コンテナ(co)内の全要素を関数(funct)に渡したい場合
for_each( co.begin(), co.end(), funct );
という構文があるのは有名ですがしかしOOPで作る場合はグローバル関数は存在しないことが多い。要素がクラスオブジェクトでそのメンバ関数を呼び出す方法があれば便利だなと思ってたんですがC++の構文上不可能だろうと思ってたらちゃんとできるんですね。
for_each( co.begin(), co.end(), mem_fun_ref( &className::method ) );
かなり驚愕しました。一体どうやっているんだろうとmem_fun_refのソースみてまたビックリ。->*を使ってるのはじめて見た(’’
参考文献
http://homepage2.nifty.com/well/
かなり凄いページです。