采用函数C++的自定义类型声明



我想做一些类似的东西

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{} =

演示。实际上,任何二进制运算符都可以工作,不需要是赋值。

最新更新