我想将打印函子的第一个参数绑定到 0:
#include<iostream>
#include<functional>
using namespace std;
class Print : public std::binary_function<int,int,void>{
public:
void operator()(int val1, int val2)
{
cout << val1 + val2 << endl;
}
};
int main()
{
Print print;
binder1st(print,0) f; //this is line 16
f(3); //should print 3
}
上面的程序(基于C++ Primer Plus的示例)无法编译:
line16 : error : missing template arguments before ‘(’ token
怎么了?
我不想使用 C++11 也不想提升特性。
编辑:为简单起见,operator() 返回类型已从 bool 更改为 void