我有一个简单的类是这样的:使用std :: bind2nd与引用
class A
{
public:
void f(const int& n)
{
std::cout<<"A::f()" << n <<"\n";
}
};
,我试图用这样的:
std::vector<A> vec;
A a;
vec.push_back(a);
std::for_each(vec.begin(), vec.end(), std::bind2nd(std::mem_fun_ref(&A::f), 9));
但是,当我编译代码我得到以下错误内部的功能的头文件某处:
错误C2529:“_right”:参照 参考是非法
如果我删除参数f()中的引用,它编译得很好。我该如何解决这个问题?我不想删除引用,因为在我的真实代码中复制对象的代价非常高。另外,我没有使用提升。
您是否检查了此链接? http://www.velocityreviews.com/forums/t290345-stdmemfunref-and-bind2nd-question。html – vpram86 2009-09-23 08:11:19