expression template

via id:taosさん

boost::ublasにはexpression templateという技法が使われているらしい。

詳しい解説:http://ubiety.uwaterloo.ca/~tveldhui/papers/Expression-Templates/exprtmpl.html

operator+とかの引数・戻り値にexpressionオブジェクトを返すようにして、遅延評価による最適化をC++テンプレートを用いて行うらしい。

致命的な罠があるという話だったが、少し調べた限りでは見つからなかった。

Haskellmonadに近いという話も。

あとでまとめる。