问题标签 [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.
c++ - 函数对象如何影响重载决议?
在重载决议期间,函数对象的处理方式是否与常规函数不同?如果是这样,怎么做?
我遇到了以下情况,用等效可调用的函数对象替换函数会改变代码的含义:
这里的输出是“N::bar”。到目前为止,一切都很好:ADL 正在找到 N::bar,N::bar 和全局 bar 都是完全匹配的,并且 N::bar 是首选,因为它不是模板。
但是,如果我将全局 bar 更改为函数对象,如下所示:
输出现在是“全局栏”。为什么有区别?
c++ - 序列化函数对象
是否可以std::function
在 C++ 中序列化和反序列化 a 、函数对象或闭包?如何?C++11 是否促进了这一点?是否有任何库支持可用于此类任务(例如,在 Boost 中)?
例如,假设一个 C++ 程序std::function
需要与驻留在另一台机器上的另一个 C++ 程序进行通信(比如通过 TCP/IP 套接字)。在这种情况下你有什么建议?
编辑:
澄清一下,要移动的函数应该是纯的且无副作用的。所以我没有安全或状态不匹配的问题。
该问题的解决方案是构建一个小型嵌入式领域特定语言并序列化其抽象语法树。我希望我能找到一些语言/库支持来移动与机器无关的函数表示。
c++ - 解析对临时函数对象的调用中的歧义
我怀疑在下面的代码中,由于最棘手的解析问题,使用构造函数参数和函数调用运算符参数调用临时函数对象在某种程度上是模棱两可的。
在Ideone上输出。
添加括号之类(Fun(a))(b)
的问题可以解决,但我不太明白如何Fun(a)(b)
将其解析为声明Fun a
。
casting - 在 TypeScript 中构建具有属性的函数对象
我想创建一个函数对象,它也有一些属性。例如,在 JavaScript 中,我会这样做:
现在在 TypeScript 中,我可以将其类型描述为:
但是,如果不需要演员表,我实际上无法构建它。如:
如果没有演员阵容,你将如何构建它?
c++ - C++ std:sort() 使用不同的标准
我搜索了很多,我不确定这是否是重复的查询,但我用它作为参考来为我创建一个排序,std::vector
它需要以下类型的数据。
我能够为每个标准编写单独的函数对象。但是,我的项目要求说我只需要一个类或结构来包含所有用于根据 和 排序的size
函数type
对象id
。是否可以std::sort
在一个类中包含所有功能对象?
我的意思是
我也考虑binary_functions
满足我的要求,但是当我在一个类中声明多个函数对象时,我遇到了错误。
此外,函数对象std::sort
(以及任何涉及比较的 STL 算法)是否必须是函数对象,bool operator()
或者它们可以是返回的普通函数bool
?
c++ - 将结构(或类)的内部函数作为函子传递
我应该如何将结构内的函数作为函子传递?我认为这应该可以正常工作,但事实并非如此:
得到<unresolved overloaded function type>
c++ - 当 API 请求函数指针时使用函数对象
我想从 C++ 调用 C API。API 需要一个函数指针,但对我来说,该功能是在 C++ 函数对象中实现的,因为它具有状态。
事实上,所需的功能被分成两个功能对象。C api 需要一个具有两个指针参数的函数,用于返回每个函数对象返回的两个东西。
除了定义全局函数之外,还有什么方法可以使用 C 中的函数对象。例如,它可以重新解释为函数指针吗?
编辑:
为简单起见,可以假设回调的签名是无效的(*f)(void*, int*, int*)
哦,它必须是 C++-03
javascript - javascript增强原型和链
我不明白为什么如果我将属性或函数添加到现有函数对象的原型中,则该属性或函数不会被识别为属于该对象。
例子:
谢谢
haskell - Haskell中的函数对象编译错误
我正在尝试创建一个Func
表示函数的类,然后创建一个Dot
组成函数的数据类型。以下是我的尝试,但出现编译错误:
我收到以下错误:
我需要修复什么才能编译?
我意识到这可能看起来有点傻,但我认为能够将不同的功能作为独特的类型进行携带可能很有用,因为可以将各种元数据附加到这些类型(我还不确定到底是什么)。