Small Object Optimization

  • 1.34のコードはかなり変更されていて「小さなオブジェクト」の場合は、コピーにheapを使わなくなっている
    • Boost.Lambdaなんかを代入しても速い
    • 以前はboost::is_statelessかどうかで判定していたようだ
  • 大きなオブジェクトの場合も、それがstatelessであることを伝えることが出来れば速くできるはずだ
  • そこで、regular_c (生い立ちからこんな名前になってしまった)
    • shared_ptrは小さなオブジェクトと判定される
  • しかし大きなオブジェクトはたいていstatefulな気もする