传递函数作为参数的最佳方法

亚历克斯

在C ++中,有几种方法可以将函数作为参数传递,但是我想了解每个函数的优点和优点,例如,从算法中查找函数的签名:

template <class RandomAccessIterator, class Compare>
  void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);

为什么std算法使用模板而不是std :: function作为传递函数?

为什么线程使用移动语义而不使用算法功能?

template <class Fn, class... Args>
explicit thread (Fn&& fn, Args&&... args);

PS:我无视C中用作函数指针的方式。

布赖恩

为什么std算法使用模板而不是std :: function作为传递函数?

std::functionC ++ 98中没有一种选择是让一个Comparator带有虚拟成员函数的抽象基类被具体的比较器类覆盖,但是模板版本更加有效,因为它避免了虚拟调度的开销。如果Compare是类类型,则operator()通常可以内联。这也是反对std::function今天使用的论点

为什么线程使用移动语义而不使用算法功能?

在C ++ 98中也没有右值引用。

显而易见,现在有了右值引用并移动了语义,不允许将值移动到线程中是很愚蠢的(因为某些类型不可复制或无法有效复制)。

为什么std::sort要按价值作为比较器?了解为什么函数对象应该按值传递以进行讨论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

传递函数返回 void * 作为参数

来自分类Dev

Java 8传递函数作为参数

来自分类Python

在python中传递函数作为参数

来自分类Dev

打字稿传递函数作为参数

来自分类Dev

ThreadPool 传递函数作为参数

来自分类Dev

在PHP中传递函数作为参数

来自分类Dev

传递函数作为模板参数

来自分类Dev

C#传递函数作为参数

来自分类Dev

传递函数作为参数。C ++

来自分类Dev

PowerShell 传递函数作为参数

来自分类Dev

在类之间传递函数作为参数

来自分类Python

Python执行器-以参数作为参数传递函数

来自分类Dev

Kotlin 传递函数作为参数 vs lambda 实现

来自分类Dev

Python:在类中传递函数作为参数

来自分类Dev

ES6传递函数作为参数示例

来自分类Java

传递函数作为参数以在UI线程上启动

来自分类Dev

传递函数类型作为模板参数无法编译

来自分类Dev

安全地在flutter中传递函数作为参数

来自分类Dev

传递函数输出以查找作为参数传递给输入文件的函数输出的字符串

来自分类Dev

python在函数外传递函数参数

来自分类Dev

将传递函数作为构造函数参数未正确识别

来自分类Dev

在scala中传递函数调用作为参数,函数会先求值吗?

来自分类Dev

F#:为什么使用外部函数版本比传递函数作为参数更快

来自分类Dev

从C#传递函数调用F#函数作为参数

来自分类Dev

反应传递函数作为道具

来自分类Dev

withFormik,传递函数作为道具

来自分类Dev

Angular - 传递函数作为输入

来自分类Dev

带参数的Scala传递函数

来自分类Dev

传递函数char参数返回错误