我正在尝试使用 boost::phoenix 库对下面的向量进行排序。Foo 类有一个成员函数'int getvalue()'。目的是使用“getvalue()”返回的值对向量进行排序。但是缺少一些东西。我收到编译器错误,因为“::second 不是类或命名空间”
std::vector<std::pair<int, Foo> > fooVec;
boost::phoenix::sort ( boost::phoenix::bind( &std::pair<int, Foo>::second::getvalue(), boost::phoenix::arg_names::arg1) (*fooVec.begin() ), std::less<int>() );
谁能解释一下。我需要进行哪些更改才能完成这项工作?
谢谢。
PS:我知道我可以使用函数对象/lambda 或类似的东西,但我想尝试 boost::phoenix。