比如我有一个函数模板
template<class Fun>
void Foo(Fun f)
{
...
}
参数是函数对象或函数指针。如果是普通的函数指针,性能不好,因为函数不能内联。在这里使用 lambda 函数怎么样?谢谢。
最佳答案
正如您所说,通过函数指针进行的调用通常无法内联,因为目标函数可能仅在运行时已知。
lambda 可以在此处内联。它的类型(推导为模板参数 Fun
)在编译时是已知的;因此函数本身 (Fun::operator()
) 也是已知的。
关于c++ - 在模板中使用 lambda 函数的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17683591/