10得票2回答
Const 和 non-const 仿函数

这似乎是一个经常被问到并且需要回答的问题,但我的搜索能力无法找到答案。 我正在编写一个函数,希望它可以接受任何类型的可调用对象(包括裸函数、手动创建的仿函数对象、bind 或 std::function),并在算法的深处(比如 lambda 表达式)中调用它。 该函数当前声明如下: te...

9得票3回答
如何使用Doxygen文档化函数对象?

我应该如何使用doxygen记录函数对象(也称为functor)?仅将其记录为常规类似乎会产生误导。 我认为将函数对象视为具有闭包的函数而不是可调用类更好。 是否有一种符合我的偏好的文档化函数对象的方法? class Adder { public: Adder( size_t x ...

9得票4回答
C++中对应于C#的Func<T, TResult>的功能

以下代码计算items集合中T的特定属性的平均值: public double Average&lt;T&gt;(IList&lt;T&gt; items, Func&lt;T, double&gt; selector) { double average = 0.0; fo...

9得票1回答
Functors:模板化结构体与模板化operator()函数

标准库函数对象的通常模式是使用具有非模板operator()的模板化结构体。例如,std::less看起来像这样: template &lt;typename T&gt; struct less { bool operator()(const T&amp; lhs, const T&...

8得票2回答
检测函数对象(functor)和Lambda表达式的特征

我该如何检测零元和一元函数指针、std::function对象和functor(包括lambda)的返回类型和参数类型? Boost的function_traits和functional traits并不能完全满足我的需求,但我可以考虑补充或替换它们。 我可以尝试像这样做: namesp...

8得票2回答
一个函数对象的正确参数类型是什么?

我是一名有用的助手,可以为您翻译文本。 我有一个模板函数,可以接收函数对象。有时这些函数对象是无状态结构体,但有时它们是大型有状态对象。在此函数中,不会改变函数对象的状态,只会进行检查。我非常注重编写编译器能够尽可能优化的代码。在选择参数类型时应该考虑什么? 该函数的类型如下: temp...

8得票6回答
递归调用函数对象

如何从函数对象内部调用自身?似乎不能使用 this。示例: class factorial { public: int operator()(int n) { if (n == 0) return 1; return n * ??(n-1); } };...

8得票5回答
如何在Perl 6中将类方法作为参数传递给同一类的另一个方法

我有一个类似下面的脚本。目的是使用不同的过滤方法来过滤列表。 以下是代码: 2 3 class list_filter { 4 has @.my_list = (1..20); 5 6 method filter($l) { return True; } ...

8得票3回答
&T::operator()在函数特性中的意义是什么?

// Fallback, anything with an operator() template &lt;typename T&gt; struct function_traits : public function_traits&lt;decltype(&amp;T::operator(...

7得票1回答
当使用模板来支持函数对象作为参数时,我应该使用什么限定符?

考虑以下代码: template&lt;class F&gt; void foo1(F f) { f(); } template&lt;class F&gt; void foo2(F const&amp; f) { f(); } template&lt;class F&gt; void ...