让我们看一下以下功能:
always @(*)
它做的很简单:它在整数向量处接收一个指针,并返回一个lambda,该lambda以另一个整数作为输入,并返回将该整数与向量的第一个元素相加的结果。
如果我想实现一个可以接受lambda作为输入的高阶函数,显然,我不能在原型中使用auto F(vector <int> *p) {
return [p](int y) -> int{ return y + (*p)[0]; };
}
。我试图像这样修复它:
auto
但是这种实现也会带来冲突:lambda类型不能转换为typedef int *A (int);
A F(vector <int> *p) {
return [p](int y) -> int{ return y + (*p)[0]; };
}
。
如何实现?