您何时应该在C 中使用函数
When should you ever use functions over functors in C++?
函数显然更有效,因为编译器更容易地将它们嵌入其中,并且它们可以通过参数化更好。您什么时候应该在函子上使用普通的旧功能?
功能支持分布式覆盖。函子没有。您必须定义函子本身的所有过载;您可以添加函数的新超载 where 。
功能支持ADL(参数依赖查找(,允许在参数类型的关联名称空间中重载。函子没有。
函数指针是(一种基于类型的无状态函数(,它是一个POD,这可以证明无国籍lambdas如何将其转换为它。此类功能(POD,无状态,类型擦除(很有用。
相关文章:
- 何时应通过引用传递矢量参数而不是按值传递矢量参数?
- 何时应在构造函数参数中使用 const C++?
- 函数何时应该内联?
- 函数可以应用于 std::optional,并返回一个可选值吗?
- 如何知道函数何时抛出以及何时使用noexcept
- 为什么或何时应在调用之前将可调用函数参数强制转换为右值?
- C++函数何时删除返回值?
- 点云库 (PCL) - 声明点云时何时应使用 ::P tr 的经验法则?
- 何时应使用 C++ 固定宽度整数类型,它们如何影响性能?
- C 虚拟函数何时派生类是最终的
- 记录器何时应刷新
- 何时应使用 [[maybe_unused]]
- 何时应在现代C++中使用(非标头)源文件
- 何时应使用模板化参数与构造参数
- 关键部分或静音是否真的是成员变量,或者何时应成为成员变量
- 何时应存储指向函数的引用或指针?
- 何时应删除默认的移动构造函数时令人困惑的事情
- 何时应通过常量引用传递运算符重载函数的参数
- 何时应在非成员函数之前编写关键字 'static'?
- 何时应使用内联函数