Boost.Function

Small Object Optimization

1.34のコードはかなり変更されていて「小さなオブジェクト」の場合は、コピーにheapを使わなくなっている Boost.Lambdaなんかを代入しても速い 以前はboost::is_statelessかどうかで判定していたようだ 大きなオブジェクトの場合も、それがstatelessであるこ…

Boost.Functionの実装の概要

コンパイラにとって、「関数(invoke)」の方が「仮想関数を含むクラス(holder)」よりも実装が簡単なのでコードサイズが小さくなる 対象が関数のみであるということを利用して汎用的な解決策である仮想関数の利用を避けることができる []#include[][] <iostream>[] []#in</iostream>…