我阅读了C ++编码标准(Herb Sutter和Andrei Alexandrescu)以及下面的两篇文章。
直观地说,与函数相比,函数对象具有额外的开销,因为它是C ++中的对象。但是,似乎函数对象调用通常优于函数调用。我知道内联是函数对象提供的优化之一。
所以我的问题是:
为什么功能对象如此之快?这是因为内联吗?
如何实现函数对象?是否在编译时转换为普通函数调用?或者运行时逻辑有什么不同吗?
是否存在函数对象比函数慢的情况?
Detailed difference between functor's call and function call?