c++ - 在模板中使用 lambda 函数的性能?

标签 c++ templates lambda

比如我有一个函数模板

template<class Fun>
void Foo(Fun f)
{
   ...
}

参数是函数对象或函数指针。如果是普通的函数指针,性能不好,因为函数不能内联。在这里使用 lambda 函数怎么样?谢谢。

最佳答案

正如您所说,通过函数指针进行的调用通常无法内联,因为目标函数可能仅在运行时已知。

lambda 可以在此处内联。它的类型(推导为模板参数 Fun)在编译时是已知的;因此函数本身 (Fun::operator()) 也是已知的。

关于c++ - 在模板中使用 lambda 函数的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17683591/

相关文章:

c++ - 具有静态方法的模板专用类是否占用存储空间?

python - 在列表理解中处理 lambda 表达式中的元组

python - lambda 给全局变量赋值?

c++ - 什么都不捕获的 lambda 可以访问全局变量吗?

c++ - 尝试在多集中插入元素时发生C++ 11编译错误

c++ - 如何在 Windows 中通过鼠标 Hook 设置光标位置?

c++ - IDE/Netbeans 可以连接到远程计算机并在其上编译/运行/调试代码吗?

c++ - 简明双向静态1 :1 mapping of values and types

c++ - 奇怪的模板行为

asp.net - GridView 中 TemplateField 上的 header