我想将带有捕获的lambda函数传递给另一个普通函数f
。
我发现只有两种选择: -
template<typename Lam> f(Lam lam, something) {...}
缺点:必须在标题中 - &gt;编译时间较慢
f(std::function<void(SomePointer*)> lam, something){...}
缺点:执行成本更高(我的情况为+ 100%,已优化)
我想将许多共享相同签名的lambda函数传递给f
(适用于2)
f
是一个具有长代码的复杂函数。 (也适合2)。
是否有任何技术可以从两种解决方案中获益?
此链接 Using lambda as an argument : std::function or template?含糊地说答案是否定的。