我想做一些类似的东西
void func1(int x)
{
...
}
int main()
{
auto acceptorFunc = bind(func1, 1);
keyword acceptorFunc;
return 0;
}
关键字是一个结构,它将任何函数调用作为参数并执行其运算符((。
struct keyword
{
...
void operator()
{
// do some thing
acceptorFunc(x);
// do something
}
}
我不明白什么样的声明是";关键字acceptorFunc";。
um计划使用的示例低于
int main(){
auto f = bind(func1, 1);
TIMEOUT f;
}
这将执行func1,但在执行func1前后将等待1秒。
也许是这样的东西:
struct TimeoutExecutor {
template <typename F>
void operator=(F f) {
// Do something before
f();
// Do something after
}
};
#define TIMEOUT TimeoutExecutor{} =
演示。实际上,任何二进制运算符都可以工作,不需要是赋值。