#include <functional>
#include <iostream>
struct Test
{
void fnc(int & a) { ++a; }
};
int main ()
{
typedef std::function<void(int)> Func;
int i = 0;
Test t;
Func f = std::bind(&Test::fnc, &t, std::ref(i));
//f(); //error C2064: term does not evaluate to a function taking 0 arguments
f(37); //Here I am forced to pass evidently unused int
std::cout << i;
}
我用对了吗?
真的有必要传递一些随机整数吗?
如果是这样,那是为什么?那是因为模板的魔力是有限的,我实际上必须将 int 传递给采用 int 的函数还是出于某些目的而设计?(例如,强制用户不要忘记函数的声明已经是什么样子?)
我用vs2012