问题标签 [bind2nd]

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 投票
1 回答
271 浏览

haskell - C++ 的 std::bind2nd 是否有内置的 Haskell 等价物?

我缺少的是部分应用函数的第二个参数而不是第一个参数的能力。当我想将函数传递给 map 之类的东西时,这特别有用,但不必每次都为它编写 lambda。

我为此编写了自己的函数(定义如下,以防万一确实没有任何内置函数,并且其他人对此感到好奇),但我真的很想知道 Prelude 中是否已经存在为此成语,因为我更喜欢重用而不是重新发明。

这是我的定义和一个简单的例子:

0 投票
2 回答
1446 浏览

c++ - 如何使用 binder 和 bind2nd 函子?

如何使用 binder2nd、bind2nd 和 bind1st?更具体地说,何时使用它们以及它们是否必要?另外,我正在寻找一些例子。

0 投票
3 回答
554 浏览

c++ - C++ bind2nd 问题

这是我期末考试中出现的问题之一。我不知道我应该做什么。我知道 BindSecArg 需要一个 () 运算符,但不确定里面是什么。

在这个问题中,您需要实现类似于 std::bind2nd 的东西。为简单起见,main 使用“for”循环编写,但可以使用“for each”和 STL 容器重写。

额外的信用问题:您的实施很可能不起作用(没关系!)

STL如何解决这个问题?

0 投票
1 回答
522 浏览

c++ - 我可以用 bind1st/2nd 替换 boost::bind 吗?

为了更好地理解,我可以将以下示例中对 boost::bind 的调用替换为 std::bind1st/2nd 吗?还是因为返回参考而不可能?

示例(缩短):

0 投票
4 回答
1301 浏览

c++ - 对对象的指针向量使用 STL 算法 (C++)

我需要计算指针数组的对象与赋予成员函数的参数具有相同名称(成员变量)的次数。我尝试了不同的方法,但都没有奏效。我的代码甚至没有编译。错误是:“错误 C2514:'MyComparator':类没有构造函数”,这是我用于比较的类的代码和用于计算并发的函数。

我为此苦苦挣扎了好几个小时,我想用 STL 来做。这里的问题是我有一个指针向量,如果我有一个法线向量,它就不需要谓词函数,在我的情况下,我必须给它一个参数,我认为 bind2nd() 是正确的方法。任何帮助将不胜感激!

0 投票
4 回答
476 浏览

c++ - 为容器中的每个对象调用具有一个参数(绑定)的成员函数

我有一个

是和Coil的基类CilCoilRectCoil分别是圆柱形线圈和矩形线圈。现在我希望calcField在每个Coil指向 in上调用一个成员函数Coils。该成员函数在基类中是纯虚函数,但已在派生类中实现,其声明如下所示:

TVector3来自 Root 库的 3D 矢量类。现在的想法是计算每个输入的字段Coil并将Coils它们加在一起。由于每次调用的参数calcField(即计算字段的位置的向量)都是相同的,我想使用<algorithm>or<numeric>标头中的 STL 算法来做这样的事情(想象):

显然,既然我是来问一个问题的,这似乎不起作用。所以我的问题很简单:为什么这不起作用和/或你将如何以正确的方式去做(在 STL 的范围内)?

我在尝试编译上述文件时收到以下错误消息(我正在使用的文件称为 Interface.cpp,它是第三方代码):

0 投票
2 回答
5379 浏览

c++ - 使用 bind2nd() 的奇怪编译器错误:“成员函数已定义或声明”而不是“引用引用”

func()我最近在这段代码中调用时花了一些时间来理解错误消息:

func()像这样声明时,代码编译得很好:

当我使用这个声明(为了提高效率)时,我得到了一个编译器错误:

由于 binder2nd 的 operator() 的定义,我希望看到的错误类似于引用到引用的错误,

相反,令我惊讶的是,Visual C++ (VS2012) 编译器给我的错误是:

错误 C2535:'void std::binder2nd<_Fn2>::operator ()(const std::vector<_Ty> &) const':成员函数已定义或声明

我无法破译。

  • 你能解释一下已经定义的operator()机制

我得到的完整错误是:

0 投票
2 回答
677 浏览

c++ - 用户定义类的 Bind2nd 问题

我正在尝试学习如何将 bind2nd 与用户定义的类一起使用,但我遇到了一个错误,尽管我努力寻找其他资源以寻求帮助,但我无法弄清楚如何解决。

帮助将不胜感激,谢谢。

主文件

0 投票
1 回答
140 浏览

c++ - 从 bind1st 和 bind2nd 直接调用返回函子

bind1st 和 bind2nd 的返回值是从 unary_function 派生的。通过调用它们,我认为它们提供了一个接受一个参数的函数对象。但这也许是错误的。

这是我的代码。

会发生很多构建错误。为什么这是错误的?

0 投票
1 回答
3192 浏览

c++ - VS2012 bind2nd 不是 std 的成员

我有一些代码已经在 vs2008 上工作,我正在尝试将它移植到 vs2012。在这个源代码上,我使用了指定的函数 bind2nd 并使用了 std::bind2nd 并且一切正常。当我用 vs2012 编译相同的代码时,我得到一个错误,说 bind2nd 不是 std 的成员。我检查了 msdn,它说这是“功能”库的一部分。当我在我的盒子上查找它时,我发现它不在其中,而是在 xfunctional 中,当 rc_invoked 未定义时,它包含在功能中。我的第一个想法是我定义了 rc_invoked 但我证明它不是。因此,遵循包含此 bind2nd 的链应该是 std 的一部分,我的代码不应该失败,但确实如此。我的想法已经用完了,所以任何想法都会受到欢迎。

干杯