如何从 std::function 获取此指针?

2023-12-23

Since std::function可以保存成员函数,因此它必须在某处存储指向对象实例的指针。

我怎样才能获取this来自 a 的指针std::function拥有成员函数?


类型的对象std::function持有一个可调用对象。指向成员函数的指针是一种可调用对象;可以使用适当的类类型的参数以及它需要的任何其他参数来调用它。例如:

struct S {
    void f(int);
};
std::function<void(S, int)> g(&S::f);

要调用它,请传递一个类型的对象S:

S s;
g(s, 3);

请注意,std::function对象确实not持有S目的;只有当您调用它时,函数指针才会绑定到对象。

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

如何从 std::function 获取此指针? 的相关文章

随机推荐

  • 并行处理多个文件的 bash 脚本

    我读过有关该主题的类似问题 但没有一个可以帮助我解决以下问题 我有一个 bash 脚本 如下所示 bin bash for filename in home user Desktop emak fa do mkdir filename cd
  • Rails 和页面特定的 Javascript

    好吧 我意识到这个问题已经被问过很多次了 但答案似乎从未解决我对此的问题 我有一个 js 文件 我只想将其包含在特定页面上 有许多回复建议我将文件放入文件夹中 然后在清单文件中仅引用这些文件夹 例如这个 Railscast 大约 06 20
  • 使用 Angular 2 处理 HTML5 事件(onfocus 和 onfocusout)

    我有一个日期字段 我想默认删除占位符 我正在使用 JavaScriptonfocus and onfocusout删除占位符的事件 任何人都可以帮助使用 angular2 指令吗
  • 为什么数组名称后面有括号和点而不是方括号?

    访问数组中的元素时 方括号的使用方式如下 X is an int and Numbers is an int array X Numbers 8 然而 在阅读其他人的代码时 我有时会发现以下语法 PBox SBox1 SBox2 are a
  • std::move 位于移动赋值运算符内

    我读到另一个问题 https stackoverflow com a 5976829 440509在实现移动构造函数时 最好对初始化列表中的每个成员进行 std move 因为如果该成员恰好是另一个对象 则将调用该对象的移动构造函数 就像这
  • HttpWebRequest getRequestStream 在多次运行时挂起

    我编写了一些代码来从侦听器发送和读取文本 这在第一次和第二次交换上运行良好 但在第三次发送时 调用之间有很长的延迟GetRequestStream 以及数据的实际写入 我已经按照此处的建议在发送端处理了输出流 以及流读取器和读取端的输入流
  • 在 R Synth 包中使用 dataprep 函数时出现令人困惑的错误

    我正在尝试使用 R 中的 Synth 包来探索某些政变对发生国家经济增长的影响 但我陷入了一个我无法理解的错误 当我尝试跑步时dataprep 我得到以下信息 Error in dataprep foo World predictors c
  • TypeError:callback.apply 不是allowDiskUse 之后的函数

    我有一个包含 100 万份文档的集合 我已经通过了以下选项allowDiskUse现在它抛出错误 TypeError callback apply is not a function 我已经搜索过这个但可以获得解决方案 请帮助 const
  • 有四个图标的工具栏如何设置像这样?

    有四个图标的工具栏如何设置像这样 我想在工具栏中设置四个类似图像的图标 我有制作工具栏 在 menu main xml 中设置图标 但我没有得到 为什么有人可以帮助我为什么它没有出现 样式 xml
  • 在 python 中使用 get_nowait() 不会引发空异常

    我有一个进程间队列 通常是空的 并且偶尔会出现一些东西 在我的一个线程中 我想定义一个像这样的 while 循环 def mythread queue1 while queue1 get nowait 1 do stuff 这非常有效 直到
  • 删除 T-SQL 文本中的所有注释

    我正在尝试删除所有评论NVARCHAR value 我不知道我会得到哪个值NVARCHAR变量 我需要删除所有以 开头的注释 直到行尾 例如 Some Comments SET NOCOUNT ON Some Comments SELECT
  • 如何在 Php 中将日期增加一天?

    我正在使用这种语法来增加上面的一天 但是当我输入这种格式时 它仍然给我这样的错误日期 01 01 1970 但我想要像 25 08 2016 这样的格式和日期 today 24 08 2016 nextday strftime d m Y
  • 绝对位置和保证金:自动

    我有一个小问题 我希望我的页脚停留在屏幕底部position absolute 但我的margin auto将其放在屏幕中间不再起作用 html
  • 3rd 方库“cordova-plugin-ms-azure-mobile-apps”在我的 Ionic 2 应用程序中未被识别

    在过去两天到处查看 并浏览各种网站上过去的论坛主题 并且没有解决方案之后 我在这里发帖作为最后的手段 我知道每个人都很忙 但这让我很累 我已经尝试了一切可能的方法 从多次从头开始创建应用程序 到一次添加一个库 然后运行并确保它正常工作 然后
  • 使用 MYSQL 数据库数据加载 Javascript 数组

    假设我有一个javascript数组 userName 我想从名为 user 的数据库表加载它 任何人都可以帮忙提供想法或示例代码吗 Thanks 你必须使用mysql connect mysql select db PHP 中的函数连接到
  • 使用 Amazon SQS 的最佳实践 - 轮询队列

    我正在设计一项为我们的电子商务网站发送电子邮件的服务 订单确认 提醒等 计划采用 SendEmail 方法 该方法生成代表要发送的电子邮件的 XML 块 并将其粘贴到 Amazon SQS 队列中 我的网络应用程序和其他应用程序将使用它来
  • Bootstrap 3 - 删除 md 和 lg 之间的断点

    我正在使用 Bootstrap 3 并尝试删除 排除中型和大型设备之间的断点 我有一个现有的网站 已优化为 970 像素 看起来很棒 我想做的是删除 md gt lg 断点 以便即使在大宽屏桌面上 最大主体宽度为 970px 并且仍然居中
  • Eclipse Android项目,如何在工作区中引用库?

    我按照我在这里找到的一些步骤 现在找不到 URL 抱歉 将 Eclipse 中的 Android 项目转换为布局 其中 99 9 的代码位于库项目中 然后我在下面还有另外 2 个 shell 项目相同的工作区 主要只是 AndroidMan
  • 在 Swift 中对 NSDictionary 对象的 NSArray 进行排序

    我已经从 API 检索了一些 JSON 数据 现在有一个充满 NSDictionary 对象的 NSArray 每个 NSDictionary 都有一个 名称 的键 值对 我想按该键 值对对 NSArray 进行排序 我已经做了很多搜索 但
  • 如何从 std::function 获取此指针?

    Since std function可以保存成员函数 因此它必须在某处存储指向对象实例的指针 我怎样才能获取this来自 a 的指针std function拥有成员函数 类型的对象std function持有一个可调用对象 指向成员函数的指