BOOST_SPIRIT_USE_LIST_FOR_TREES

マクロBOOST_SPIRIT_USE_LIST_FOR_TREESを定義した場合にコンパイルできない問題だけ修正しました。
差分


通常、Boost.Spiritの構文木は、

template<class T>
struct tree_node
{
    typedef std::vector<tree_node<T> > children_t;

    T value;
    children_t children;
};

のような構造体で表現されますが、BOOST_SPIRIT_USE_LIST_FOR_TREESを定義してコンパイルすると、vectorの代わりにlistを使うようになります。
これでtree_node挿入時のメモリ再確保を防ぐことができるわけです。
が、結局list全体のコピーが頻繁に発生するので、Hamigaki.Bjamの実行時間はあまり違いがでませんでした。
COWベースのコンテナに差し替えれば速くなるかも。