Boost Phoenixを使ってみました。私の目的は、ここで説明されているように、イテレータの範囲ではなくコンテナを取る stl アルゴリズムを持つこと です。ただし、かなり単純なコードで大量のエラーが発生しています。
#include <boost/phoenix/stl/algorithm.hpp>
#include <iostream>
#include <vector>
#include <algorithm>
namespace phx = boost::phoenix;
int main(int argc, char ** argv) {
std::vector<int> my_arr{ 0, 1, 2, 3 };
phx::for_each(my_arr, [](int i){std::cout << i << std::endl; });
}
Boostの複数の部分を使用する2つのプラットフォーム(Win7、Ubuntu)で試しました。
エラーメッセージはかなり長いので、ファイルに入れました:
テンプレートが正しくコンパイルされていないことを除けば、実際には多くのエラーを発生させることはできませんが、かなり単純なものが欠けていると思います。