boost::bind 和类成员函数

2024-04-13

考虑以下示例。

#include <iostream>
#include <algorithm>
#include <vector>

#include <boost/bind.hpp>

void
func(int e, int x) {
    std::cerr << "x is " << x << std::endl;
    std::cerr << "e is " << e << std::endl;
}

struct foo {
    std::vector<int> v;

    void calc(int x) {
        std::for_each(v.begin(), v.end(),
            boost::bind(func, _1, x));
    }

    void func2(int e, int x) {
        std::cerr << "x is " << x << std::endl;
        std::cerr << "e is " << e << std::endl;
    }

};

int
main()
{
    foo f;

    f.v.push_back(1);
    f.v.push_back(2);
    f.v.push_back(3);
    f.v.push_back(4);

    f.calc(1);

    return 0;
}

如果我使用一切正常func()功能。但在现实生活中的应用程序中我必须使用类成员函数,即foo::func2()在这个例子中。我怎样才能用 boost::bind 做到这一点?


你们真的非常非常接近:

void calc(int x) {
    std::for_each(v.begin(), v.end(),
        boost::bind(&foo::func2, this, _1, x));
}

编辑:哎呀,我也是。呵呵。

不过,经过反思,您的第一个工作示例并没有什么真正的问题。在可能的情况下,您确实应该更喜欢自由函数而不是成员函数 - 您可以看到您的版本更加简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

boost::bind 和类成员函数 的相关文章

  • WPF 中的屏幕分辨率问题?

    我将在 WPF 中使用以下代码检测分辨率 double height System Windows SystemParameters PrimaryScreenHeight double width System Windows Syste
  • 为什么存在 async 关键字

    浏览 msdn 9 频道视频时 我发现以下未答复的评论 希望有人能解释一下 我不明白 async 关键字的意义 为什么不直接允许 任何时候方法返回任务时都会使用await关键字 就像迭代器一样 可以在任何返回 IEnumerable 的方法
  • 具有不同大小结构的结构数组的 malloc()

    如果每个结构都包含一个大小不同的字符串数组 那么如何正确地 malloc 一个结构数组 因此每个结构可能有不同的大小 并且不可能 realloc 结构体数量 sizeof 结构体名称 after malloc 初始大小 sizeof 结构名
  • clang 格式换行符在错误的位置

    给出以下代码行 get abc manager get platform status abc platform status sw update status fill update status actions allowed stat
  • 在 VS2017 下使用 Conan 和 CMake 项目进行依赖管理

    我正在尝试使用 CMake 与 VS2017 集成为 C 设置一个开发环境 以便在 Linux x64 下进行编译 为了更好地管理依赖关系 我选择使用 Conan 但我对这个软件还很陌生 我想知道让 VS2017 识别项目依赖关系的最佳方法
  • Subversion 和 Visual Studio 项目的最佳实践

    我最近开始在 Visual Studio 中处理各种 C 项目 作为大型系统计划的一部分 该系统将用于替换我们当前的系统 该系统是由用 C 和 Perl 编写的各种程序和脚本拼凑而成的 我现在正在进行的项目已经达到了颠覆的临界点 我想知道什
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • (const T v) 在 C 中从来都不是必需的,对吗?

    例如 void func const int i 在这里 const是不必要的 因为所有参数都是按值传递的 包括指针 真的吗 C 中的所有参数确实都是按值传递 这意味着无论您是否包含该参数 实际参数都不会改变const or not 然而
  • C++中delete和delete[]的区别[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的删除与删除 运算符 https stackoverflow com questions 2425728 delete vs delete operators in c 我写了一个包含两个指针的
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • libxml2 xmlChar * 到 std::wstring

    libxml2似乎将所有字符串存储在 UTF 8 中 如xmlChar xmlChar This is a basic byte in an UTF 8 encoded string It s unsigned allowing to pi
  • C# 中的常量和只读? [复制]

    这个问题在这里已经有答案了 可能的重复 const 和 readonly 之间有什么区别 https stackoverflow com questions 55984 what is the difference between cons
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • 使用 mingw32 在 Windows 上构建 glew 时“DllMainCRTStartup@12”的多个定义

    我关注了这个主题 使用 mingw 使建筑物在 Windows 上闪闪发光 https stackoverflow com questions 6005076 building glew on windows with mingw 6005
  • DataTable:通过 LINQ 或 LAMBDA 进行动态 Group By 表达式

    我有一个数据表 我想在其中对未指定数量的字段进行分组 发生这种情况的原因是用户可以选择他想要分组的字段 所以 实际上 我将选择推入列表中 在这个选择上 我必须对我的数据表进行分组 想象一下这段代码 VB 或 C 都一样 public voi
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include
  • 在 Xamarin 中获取 OutOfMemoryException

    java lang OutOfMemoryError 考虑增加 JavaMaximumHeapSize Java 执行时内存不足 java exe 我的 Visualstudio Xamarin 项目出现内存不足异常 请帮助我如何解决此问题
  • 如何使用 C# 以低分辨率形式提供高分辨率图像

    尝试使用 300dpi tif 图像在网络上显示 目前 当用户上传图像时 我正在动态创建缩略图 如果创建的页面引用宽度为 500x500px 的高分辨率图像 我可以使用相同的功能即时转换为 gif jpg 吗 将创建的 jpg 的即将分辨率

随机推荐

  • 使用 Photoshop 脚本显示/隐藏图层的功能 (JSX)

    我正在编写一个脚本 它将循环遍历图层 修剪它们并导出 到目前为止 我已经拥有完成此脚本所需的大部分元素 我唯一找不到的是如何显示 隐藏单个图层 我找到了显示 隐藏所有图层的功能 但没有找到单个图层的功能 selectAllLayers se
  • Delphi 中的 Web 服务超时错误

    我有一个发出 SOAP 请求的客户端应用程序 我已将超时设置为 20 分钟 但是 有时我会看到 10 秒后发生超时错误 我的代码中有以下内容 RIO HTTPWebNode ReceiveTimeout 1200000 我需要设置Conne
  • 使用 android espresso 访问自定义可扩展列表中的子项

    我正在尝试访问自定义可扩展列表中的子项 该列表如下所示 自定义可扩展列表 http foodaversions com aversions cropped png 我可以通过以下方式成功访问组 Espresso onView allOf w
  • beautifulsoup:导入错误:没有名为 html.entities 的模块

    我试图让这个模块在服务器上工作 但我在标题中收到错误 我的脚本 from bs4 import BeautifulSoup 当我运行它时 aclark tycho python test py Traceback most recent c
  • 将项目附加到 WPF 中的数据绑定 ItemsControl

    我有一个组合框 它与项目的 ObservableCollection 进行数据绑定 我想要一个默认选定的项目 无 它将我绑定到 SelectedValue 的属性的值设置为 null 我认为应该有一种方法可以通过 Style DataTem
  • 如何在 Hibernate 中创建/调用 sql 视图

    这是在中创建的视图document hbm xml
  • 从 DateTime 系列中的多个 CSV 文件设置 MultiIndex DataFrame

    我有一个 CSV 格式的时间序列价格数据列表 其读法如下 asxList ANZ NAB WBC for asxCode in asxList ohlcData pd DataFrame from csv asxCode CSV heade
  • Elixir GenServer 并行handle_call

    Phoenix框架上有一个应用程序 需要 GenServer 它将检查一些值 这些值的验证从控制器开始 来自客户端的请求 GenServer 值检查 客户端接收响应 一旦handle call是同步的 那么当10个客户端同时调用10个han
  • 在 shUnit2 中重定向文件输出的单元测试 bash 脚本

    我正在使用 shUnit2 在 Bash shell 脚本中进行单元测试 我有这样的代码 cat gt etc somefile lt
  • 图像未从 Firebase 存储下载

    我正在尝试将图像从新的 Firebase 存储下载到本地文件 为此 我使用 Firebase 提供的示例here https firebase google com docs storage ios download files downl
  • Django:查询抽象基类

    我遇到过这样的情况 我正在对一场足球比赛进行建模 每场比赛都有一组与之相关的事件 这些事件与比赛期间发生的事情有关 所以有点像这样 class Event models Model time models IntegerField clas
  • 从图像中获取主色并丢弃背景

    从图像中获取主色的最佳 结果 而不是性能 算法是什么 该算法应该丢弃图像的背景 我知道我可以构建一个颜色数组以及它们在图像中出现的数量 但我需要一种方法来确定什么是背景 什么是前景 并且在读取主色时只记住第二个 前景 这个问题非常困难 特别
  • Pythoncurses不显示颜色,而Cncurses工作正常

    我似乎无法让 Pythoncurses 模块显示颜色 而 ncurses C 库工作正常 这是一个应该可以工作的简单脚本 import curses def main stdscr if not curses has colors rais
  • 更新嵌入数据,例如 sysdata.rda

    我最近向 CRAN 提交的内容被退回了 因为我有一份关于全球环境的作业 但现在这已引起人们的不满 我有一个嵌入式数据集 sysdata rda 其中包含基于用户所在州 如美国 的配置参数 我希望当新用户使用该程序时可以更新此嵌入数据集 我之
  • 将提交从一个子树应用到同一存储库中的另一个子树

    我一直在使用 git p4 将 Perforce 存储库的部分内容克隆到 git 存储库中 我检查的树具有以下 Perforce 分支 结构 回购 发布回购 发布B仓库 功能仓库 功能B 我的本地 git 存储库中有一堆 git 提交到 f
  • 如何在搜索 api 中排除转发和回复?

    如何在搜索 api 中排除转发和回复 我正在尝试使用搜索 api 从 Twitter 获取提要 结果我也收到了回复和转发 所以我想排除回复和转发 怎么办谁帮帮我 这是我的网址 我认为上面的内容是不正确的 您可以在搜索 API 中使用过滤器
  • Flutter硬件音量键检测?

    迄今为止所有的挖掘都表明https github com flutter moum flutter hardware buttons https github com flutter moum flutter hardware button
  • 如何实时更新 NetworkX 图?

    我正在尝试在画布中使用 matplotlib 更新 networkx 图 但它每次都会向图表添加一个新图表 而不是更新下面的图表 我必须将调用添加到nx draw networkx 函数让它更新 我不确定这是否是问题的一部分 示例代码 im
  • 如何使用PyCharm调试Scrapy项目

    我正在使用 Python 2 7 开发 Scrapy 0 20 我发现 PyCharm 有一个很好的 Python 调试器 我想用它来测试我的 Scrapy 蜘蛛 有人知道该怎么做吗 我尝试过的 Actually I tried to ru
  • boost::bind 和类成员函数

    考虑以下示例 include