问题标签 [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.
c++ - 如何在 Visual Studio 2008 SP1 中使用 std::tr1::mem_fun?
VS2008 SP1文档讨论了std::tr1::mem_fun
.
那么为什么,当我尝试使用时std::tr1::mem_fun
,为什么会出现这个编译错误?:
同时,我可以std::tr1::function
毫无问题地使用。
这是我试图编译的示例代码,它应该通过 a调用TakesInt
的实例:Test
function<void (int)>
我正在尝试使用 tr1 版本mem_fun
,因为使用std::mem_fun
我的代码时也无法编译!我无法从编译器错误中判断问题出在我的代码上,还是可以通过使用 tr1's 来解决mem_fun
。那是你的 C++ 编译器错误(或者可能只是我!)。
更新:对。答案是正确拼写为 mem_fn!
但是,当我修复它时,代码仍然无法编译。
这是编译器错误:
c# - C# 相当于 C++ mem_fun?
我想在 C# 中执行以下操作:
在 C++ 中,我会使用 std::mem_fun 之类的东西。我将如何在 C# 中做到这一点?
c++ - mem_fun 和 bind1st 问题
我有以下课程:
现在,我已经vector<A*> availableObjs
人满为患了。我想调用clone
其中的每一个,因此将克隆的对象插入到clonedObjs
类型的新容器中vector<A*>
。我正在尝试关注 - 但它没有编译:
有没有简单的出路?我有很多像 A 一样的分类 - 所以让它们中的每一个都成为函子是太多的任务。
c++ - 如何让 memfun 有两个参数
我想使用这个函数“EnumWindows(EnumWindowsProc, NULL);”。EnumWindowsProc 是一个回调函数:
对于这个回调,我想使用一个类的成员函数。
例如:
所以我想将调用的回调与我的函数绑定!!!
我试试这个:
这是行不通的,“mem_fun”只能接受一个参数!有可能这样做吗?否则你知道另一种解决方案吗?(也许使用 Boost::bind 可以解决)
c++ - 使用 bind1st 和 mem_fun 引用成员函数
我有一个 C++ 类,我正在尝试使用 std::bind1st 将成员函数绑定到“this”参数。例如:
当我添加最后一个 'bind1st' 行时,我收到以下编译器错误:
我将 STLPort v5.2.1 用于标准库实现。
通常,我会切换到 boost::bind 并使用它。不幸的是,这不是这个应用程序的可能性。
我可以做些什么来获得我正在寻找的功能?
谢谢,保罗
编辑:为了更清楚,我正在寻找一种方法来使一元函数适应你调用的不带参数的函数。我想“绑定”this
到MyClass::Bar
.
c++ - 使用 std::vector::push_back 与 std::mem_fun 和 std::bind1st
我正在尝试使用std::vector<T*>::push_back
and std::mem_fun
,std::binder1st
但这似乎不可行,可以这样做吗?
我试图用下面的代码来举例说明。
我的目标是拥有一个容器类,我可以告诉它执行一个接收选定项目(“A”对象或“A”派生对象)作为参数的函数。但我没有设法使用std::vector::push_pack
它。
c++ - 将 mem_fun 存储在标准容器中
有没有办法创建一个vector< mem_fun_t< ReturnType, MyClass > >
?
我看到的错误是:
c++ - C++为成员容器中的项目调用for_each中的成员函数
如果我有一个像这样的类(模仿一些 STL 的容器):
如果我想为 'cont_' 中的所有元素调用 prepare(),我可以创建以下函数:
我的问题是,如果我想为 'cont_' 中的所有元素调用 Selector::prepare_elem() 怎么办?我最初的方法不会编译:
第二种方法也失败了:
无论如何使用 std::for_each() 来调用 Selector::prepare_elem()?
如果有办法,我想知道没有提升的解决方案。
c++ - STL for_each 抱怨参数列表
作为家庭作业的一部分,我们应该在地图中映射每个字符的出现。我们的函数应该使用 std::for_each 并传入要评估的字符。
我的功能是:
document_
是 a string
,而 fillMap 函数的定义如下
chars_
被声明为std::map<char, unsigned int> chars_;
。
我认为这应该可以,但是编译器在抱怨
这让我感到困惑,因为当我查看参数列表时
对我来说看起来不错。_Elem 是一个字符,我的函数接受一个字符。迭代器只不过是一个char *
我究竟做错了什么?
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 = 无符号整数&]