ちょいと横道にそれて、compose。 合成関数を作るアダプタです。 ではサンプルコードを。
ドキュメントからへちった表ですが、
Functionality | Boost Name | SGI STL's Name |
---|---|---|
f(g(value)) | compose_f_gx | compose1 |
f(g(value),h(value)) | compose_f_gx_hx | compose2 |
f(g(value1),h(value2)) | compose_f_gx_hy | |
f(g(value1,value2)) | compose_f_gxy | |
f(g()) | compose_f_g |
まあ、これが全てを物語っています。 compose がわからん人は boost が難しいんじゃなくて、 単純に STL の習熟度が足らんのだと思います。 STLをきちんと functional まで理解すればその延長かと。 まあ、慣れれば無限に合成していくことができるでしょう。
まあ、コツは頻繁に改行することですね。
boost::bind, boost::mem_fn と違って、 refer to refer 問題と ptr_fun の問題があります。 refer to refer の方だけ解決した拙作が一応 あります。
もう終わりか。 他のに比べて実装も STL レベルでしょぼいから解説するべき点は無し。
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。