问题标签 [mem-fun]

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 投票
3 回答
5488 浏览

c++ - 如何在 Visual Studio 2008 SP1 中使用 std::tr1::mem_fun?

VS2008 SP1文档讨论了std::tr1::mem_fun.

那么为什么,当我尝试使用时std::tr1::mem_fun,为什么会出现这个编译错误?:

同时,我可以std::tr1::function毫无问题地使用。

这是我试图编译的示例代码,它应该通过 a调用TakesInt的实例:Testfunction<void (int)>

我正在尝试使用 tr1 版本mem_fun,因为使用std::mem_fun我的代码时也无法编译!我无法从编译器错误中判断问题出在我的代码上,还是可以通过使用 tr1's 来解决mem_fun。那是你的 C++ 编译器错误(或者可能只是我!)。


更新:对。答案是正确拼写为 mem_fn!

但是,当我修复它时,代码仍然无法编译。

这是编译器错误:

0 投票
2 回答
306 浏览

c# - C# 相当于 C++ mem_fun?

我想在 C# 中执行以下操作:

在 C++ 中,我会使用 std::mem_fun 之类的东西。我将如何在 C# 中做到这一点?

0 投票
2 回答
4105 浏览

c++ - mem_fun 和 bind1st 问题

我有以下课程:

现在,我已经vector<A*> availableObjs人满为患了。我想调用clone其中的每一个,因此将克隆的对象插入到clonedObjs类型的新容器中vector<A*>。我正在尝试关注 - 但它没有编译:

有没有简单的出路?我有很多像 A 一样的分类 - 所以让它们中的每一个都成为函子是太多的任务。

0 投票
5 回答
833 浏览

c++ - 如何让 memfun 有两个参数

我想使用这个函数“EnumWindows(EnumWindowsProc, NULL);”。EnumWindowsProc 是一个回调函数:

对于这个回调,我想使用一个类的成员函数。

例如:

所以我想将调用的回调与我的函数绑定!!!

我试试这个:

这是行不通的,“mem_fun”只能接受一个参数!有可能这样做吗?否则你知道另一种解决方案吗?(也许使用 Boost::bind 可以解决)

0 投票
4 回答
9159 浏览

c++ - 使用 bind1st 和 mem_fun 引用成员函数

我有一个 C++ 类,我正在尝试使用 std::bind1st 将成员函数绑定到“this”参数。例如:

当我添加最后一个 'bind1st' 行时,我收到以下编译器错误:

我将 STLPort v5.2.1 用于标准库实现。

通常,我会切换到 boost::bind 并使用它。不幸的是,这不是这个应用程序的可能性。

我可以做些什么来获得我正在寻找的功能?

谢谢,保罗


编辑:为了更清楚,我正在寻找一种方法来使一元函数适应你调用的不带参数的函数。我想“绑定”thisMyClass::Bar.

0 投票
2 回答
1732 浏览

c++ - 使用 std::vector::push_back 与 std::mem_fun 和 std::bind1st

我正在尝试使用std::vector<T*>::push_backand std::mem_funstd::binder1st但这似乎不可行,可以这样做吗?

我试图用下面的代码来举例说明。

我的目标是拥有一个容器类,我可以告诉它执行一个接收选定项目(“A”对象或“A”派生对象)作为参数的函数。但我没有设法使用std::vector::push_pack它。

0 投票
3 回答
767 浏览

c++ - 将 mem_fun 存储在标准容器中

有没有办法创建一个vector< mem_fun_t< ReturnType, MyClass > >

我看到的错误是:

0 投票
1 回答
1392 浏览

c++ - C++为成员容器中的项目调用for_each中的成员函数

如果我有一个像这样的类(模仿一些 STL 的容器):

如果我想为 'cont_' 中的所有元素调用 prepare(),我可以创建以下函数:

我的问题是,如果我想为 'cont_' 中的所有元素调用 Selector::prepare_elem() 怎么办?我最初的方法不会编译:

第二种方法也失败了:

无论如何使用 std::for_each() 来调用 Selector::prepare_elem()?

如果有办法,我想知道没有提升的解决方案。

0 投票
4 回答
1113 浏览

c++ - STL for_each 抱怨参数列表

作为家庭作业的一部分,我们应该在地图中映射每个字符的出现。我们的函数应该使用 std::for_each 并传入要评估的字符。

我的功能是:

document_是 a string,而 fillMap 函数的定义如下

chars_被声明为std::map<char, unsigned int> chars_;

我认为这应该可以,但是编译器在抱怨

这让我感到困惑,因为当我查看参数列表时

对我来说看起来不错。_Elem 是一个字符,我的函数接受一个字符。迭代器只不过是一个char *

我究竟做错了什么?

0 投票
2 回答
456 浏览

c++ - std::mem_fun_ref 问题:作为成员函数调用时,仿函数被破坏

问题是下面代码片段的编译器错误。

这是一个非常简单的程序,用随机整数填充列表并递增每个元素。我使用 std::for_each 调用函子来增加我的集合的每个成员并全部编译。关注 main() 中的 for_each。接下来我简单地将 for_each 更改为调用 List::increment 而不是仿函数 Increment(注意 main 中注释掉的代码)。对于这个任务,我使用 mem_fun_ref 因为我处理的不是指针集合而是类。另外我认为我不需要bind1st 或bind2nd。

这是我的编译器错误:

/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algo.h: 在函数 _Function std::for_each(_InputIterator, _InputIterator, _Function) [with _InputIterator = std::_List_iterator, _Function = std::mem_fun1_ref_t]': blahblah.cpp:53: 从这里实例化

/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_algo.h:158:错误:不匹配调用 (std::mem_fun1_ref_t) (unsigned int&)'

/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_function.h:826:注意:候选人是: void std::mem_fun1_ref_t::operator()(_Tp&, _Arg) const [其中 _Tp = 列表,_Arg = 无符号整数&]