Boost 1.34

ビルドして、使ってみて、気付いたこと、躓いたことが少しあったので書いておきます。

>bjam --toolset=msvc stage

だけであっさりVC++7.1でビルドできました。以前みたいに環境変数とか、vc7_1とかいらなくなったみたいです。
注意する点としては、HDDを3GBぐらい要することでしょうか。HDDスペースが足りないと、寝てる間にビルドさせたのに終わってなかったりしてがっかりします。

変更点が原因で躓いた部分とその対応:

  1. Boost.Testの、以前からdeprecatedとされていたBOOST_AUTO_UNIT_TESTが正式に消えました。BOOST_AUTO_TEST_CASEに置換しましょう。
  2. Boost.Testを複数のインプリメンテーションファイルに分けて使っていると、同名グローバル変数の複数定義によりリンクが失敗するようになりました。とりあえずとっととビルドしたかったので、あまり深く考えず、boost\test\utils\trivial_singleton.hpp:(61)とboost\test\test_tools.hpp:(262)の変数宣言にstaticを付けて対応しました。
  3. Boost.Regexregex_searchやregex_matchに失敗した場合に、match_resultオブジェクトのpositionが-1にならなくなりました。仕様どおり、関数の戻り値を使いましょう。失敗時のmatch_resultオブジェクトの状態は未定義が仕様です。