0
簡單的例子鳳::鳳:的boost ::使用升壓與VS2008
#include <vector>
#include <algorithm>
#include <boost/phoenix.hpp>
namespace ph = boost::phoenix;
namespace place = boost::phoenix::placeholders;
struct A
{
int val_;
explicit A(int i) : val_(i) {}
int foo() { return val_;}
};
int main()
{
std::vector<A> coll;
coll.push_back(A(2));
coll.push_back(A(4));
coll.push_back(A(5));
coll.push_back(A(7));
std::vector<A>::const_iterator cit;
cit = std::find_if(coll.begin(), coll.end(), ph::bind(&A::foo, place::_1) % 2 == 1);
int val = (*cit).val_;
return 0;
}
它編譯但也有一些警告在VS2008的輸出:
C:\ boost_1_47_0 \提升\鳳凰\ bind \ detail \ member_variable.hpp(54):警告C4180:適用於函數類型的限定符沒有任何意義;忽略
它來自哪裏:1)代碼2中的不正確)再次出現MS問題。 3)boost :: phoenix庫不好嗎?