bind

  • 実装サンプル
  • Boost.BindとBoost.Lambdaではplaceholderの置換ルールが少し違うみたいである
    • Boost.Bindの方がEBOをしているらしくソースコードが難しい
    • EggはPODにするために幸運にもEBOできない

mono v2

  • v1は格好が悪かった
  • 関数型を使うことにした…実装
    • result_ofを利用するときは戻り値型にuse_defaultを指定する
void test()
{
    namespace bll = boost::lambda;
    BOOST_CHECK( std::not1( egg::mono<bool(int)>(bll::_1 != 12) ) (12) );
    BOOST_CHECK( std::bind1st( egg::mono<boost::use_default(int, int)>(bll::_1 == bll::_2), 12 ) (12) );
}

(オブジェクトではない)関数を作る

  • これについて
  • 一般には、こんな風にvtableを自前で作ったりも出来ます
    • Boost.Functionも自前で作っています
    • もっとすごそうなライブラリ…Boost.Vtable

msvc-8.0 vs msvc-9.0

  • Visual C++ 2008 Express Edition(英語版)をインストールした
    • Visual C++ 2005 Express Edition(日本語版)と共存できている模様
    • Visual C++ .NET Version 7.1とも共存できている
  • これは直っている
  • これは直っていない
    • もう直せないのかもしれない
    • 回避策はここ