C++ C++;std::bind使用错误:编译失败?

C++ C++;std::bind使用错误:编译失败?,c++,c++11,bind,C++,C++11,Bind,我有以下程序: #include<iostream> #include<functional> using namespace std; using namespace std::placeholders; void f(int &i,int &j){ ++i; ++j; } int main(){ int i=0; int j=0; bind(&f,_1,ref(i))(3); bind(&

我有以下程序:

#include<iostream>
#include<functional>
using namespace std;
using namespace std::placeholders;
void f(int &i,int &j){
    ++i;
    ++j;
}
int main(){
    int i=0;
    int j=0;
    bind(&f,_1,ref(i))(3);
    bind(&f,ref(j),_1)(4);
    return 0;
}
#包括
#包括
使用名称空间std;
使用名称空间std::占位符;
无效f(内部和i、内部和j){
++一,;
++j;
}
int main(){
int i=0;
int j=0;
绑定(&f,_1,参考(i))(3);
绑定(&f,参考(j),_1)(4);
返回0;
}
clang--std=c++11给出以下错误:

no matching function for call to object of type '__bind<void (*)(int &,
  int &), std::__1::placeholders::__ph<1> &, int &>'
bind(&f,_1,i)();
对类型为“\u bind”的对象的调用没有匹配函数
绑定(&f,_1,i)();

如何修复它?

停止
使用命名空间std
。而
f
是……?由
bind
生成的函子需要一个参数(请参见您在其中使用的
\u 1
)。你叫它没有。不清楚你预期会发生什么。函数
f
包含两个参数(如果错误消息可信;示例中明显没有
f
的声明)。您希望用哪两个参数调用它?请编辑您的问题以包含刚刚编辑的我的问题。请再查一下。