Arkadiy Vertleyb氏のtypeofエミュレーションライブラリをSTLやboost::lambdaと組み合わせて使って遊んでみたけれど,これがまた異常に凶悪だった.癖になりそう・・・.Boostのメーリングリストと実装を追ってみたけれど,このtypeofエミュレーションは意外と簡単に実装してるなぁと思った(少なくとも自分の感覚では).
遊んでみて思ったけれど,別にExpression Templateを使っているライブラリじゃなくてもtypeofの意義は十分にあるなぁ.少なくともオブジェクトジェネレータの結果を使いまわしたい場合はかなり(゜д゜)ウマーだ.もっとも,ETも言ってみればオブジェクトジェネレータなわけだけれど.
ちなみに,lambdaで無名copy_ifアルゴリズムを作って,それをBOOST_AUTOで変数にしようとしたけれど,テンプレート引数が多すぎてライブラリがdecode出来ずにコケたのは内緒だよぉ?(ちなみにそのときのコンパイルエラーは1500行だった.たった1文でこれだけのコンパイルエラーを吐かせることが出来るってのはある意味すごいかも知れんw.)
Joel de Guzman氏がこのエミュレータに期待してたけれど,これぐらいの再帰テンプレートでコケているようじゃspiritで使うには若干力不足かなぁ.あと,BLL単体ですらコンパイル遅いのにtypeof使うとそれに輪をかけて遅くなるのはどうしたものかw.