【发布时间】:2016-04-07 00:35:21
【问题描述】:
在 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::functionpost-datesstd::sort(实际上是 C++11 之前标准库算法中的所有“可调用对象”)。跨度>