问题标签 [function-object]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
221 浏览

c++ - 在 C++ 中具有函数对象自动检测类型

我想以相反的顺序对包含 int 的向量进行排序,但是由于我已经习惯于在 c++ 中键入推导,所以我在没有指定 int 的情况下传递了函数对象Greater<>(),因为它还能是什么?这在使用 g++ 时不起作用,但在 Visual Studio 编译器中起作用,但是我注意到 Visual Studio 使用了 void(不确定这是否可以)。函数对象是否可以自动推断类型,为什么或为什么不?如果没有,是否有一些解决方法,因为类型可能会很长时间才能输入?

0 投票
1 回答
79 浏览

c++ - 调用模板函数 - 合法吗?

我有一个模板函数(查找最小值的通用函数),看起来像这样:

和一个电话:

其中less_marices是:

这是正确的语法吗?

我不应该用 operator () 定义一个函数对象,它将执行less_matrices所做的布尔检查,并且对findmin的调用不应该看起来像:

其中minMatrixFunc是具有正确operator()的函数对象???

0 投票
0 回答
158 浏览

c++ - c++:如何将指针和仿函数作为模板参数传递

我想将类指针和仿函数作为类模板参数传递。我也不希望该类指针成为仿函数的本地成员。我想使用代码中其他地方使用的现有模板类,所以我想对这两个参数应用默认值,这样我就不必更改现有代码。

我的意图在这堂课中得到了解释。

然而,实际上,我有这个模板目前缺少一些我想要的信息。

当 MyClass 的实例被创建时,AnotherClass* anClass 就存在了。

0 投票
0 回答
414 浏览

functor - c++ 如何从仿函数调用外部类的函数?

我在一个类中定义了一个函子。我想直接从仿函数访问外部类的成员函数。我怎么做?我想将此函子传递给代码中其他地方的模板类。我不想使用函数指针。

仿函数是否需要保留对内部类的引用作为成员,在初始化时分配给它,以便能够调用该类的函数?

假设我想在仿函数内部保留对外部类的本地引用,那么如何创建一个指向仿函数的实例(不是指针)并将指针传递给仿函数的构造函数中的外部类?

0 投票
3 回答
509 浏览

python - Python - 将命名参数传递给函数对象

我接到一个关于网络应用程序中过时参数的电话。我看到了这个帖子...

wtforms+flask 今天的日期作为默认值

......这是正确的。

该字段的默认设置是在 Web 服务器启动时设置的。这很容易测试。文件中有几个打印语句,它被证明了。

所以现在高级软件工程师的问题是“我如何传递参数?”。

那么……

但是高级软件工程师希望能够在分配函数时将参数内联到函数中,例如......

...但没有立即调用它。基本上,存储函数对象及其参数而不执行它们,仍然延迟,以便代码在页面加载而不是在服务器启动时运行。

目前,我们有两个想法。

  1. 高级软件工程师正在考虑将方法包装在方法周围。所以有一个核心方法,然后是一些特定于场景的其他方法,例如 myfuncminus10
  2. 我在考虑 lambda 表达式。像 myfunc = lambda :datetime.now().date() - timedelta(days=365) 这样的东西肯定会产生预期的结果,但可能会导致大量复制和粘贴相同的代码。

解决这个问题的最佳方法是什么?我认为有一种非常好的方法,它不是我刚刚描述的两种方法中的任何一种,我们只是还不知道。

0 投票
2 回答
199 浏览

c++ - 函子或函数对象的真实世界用法

我是一名 C++ 开发人员。最近,我遇到了函数对象的概念。但我想知道函数对象在日常编码中的用法。请对这种用法有所了解,这将使代码更清晰或更高效。

0 投票
3 回答
387 浏览

c++ - How do I assign an std::function to an operator in C++?

This code is supposed to make the std::function<bool(Key, Key)> lessThan field equal to the key's < operator by default. However, when I try this with AVLTree<int,int>, I get:

Am I formatting this wrong, or is this just impossible in C++?

0 投票
1 回答
38 浏览

c++ - 围绕函子的术语

让我们看一个简单的函子

例如,我可以像这样使用 -

我对仿函数术语的理解是,类LessThan是仿函数。即它是一个类型,而不是一个对象。即它是抽象的,而不是具体的。

那么,我们叫LessThan(10)什么?在这里,我们通过实例化LessThan函子类型来创建一个对象。那么,我们称它为仿函数对象吗?但是,函子是函数对象。那么,LessThan(10)函数对象是对象吗??

这不是很荒谬吗?

0 投票
1 回答
185 浏览

c++ - Qt5 函数对象作为回调复制

我尝试了使用可调用对象作为回调的新 Qt5 功能。

样本输出:

但是,它并没有真正按预期运行。它从复制回调对象开始(我理解:因此它不会在与其关联的对象之前超出范围)。但是,该对象在每个触发事件之前被复制,所以我的计数器保持为零。为什么它保持对象不变?

0 投票
1 回答
1080 浏览

c++ - C++ parallel_for 错误

我正在尝试学习如何使用 TBB,因此我正在修改我发现的一个示例程序,该程序旨在计算复数数组的幂。最初,它是将一个数组传递给parallel_for循环,但我试图改变它,使它传入一个向量。但是,我无法编译我的代码;我收到以下错误(使用 g++ -g program_name.cpp -ltbb 编译):

我的代码如下: