如何将 boost::bind 对象传递给函数?

2024-01-27

我有一个一维函数最小化器。现在我正在向它传递函数指针。然而,许多函数有多个参数,其中一些参数是固定的。我已经使用像这样的函子实现了这个

template <class T>
minimize(T &f) {
}

Functor f(param1, param2);
minimize<Functor>(f);

然而函子的定义有很多繁琐的内容。 Boost::bind 看起来更干净。这样我就可以做到:

minimize(boost:bind(f,_1,param1,param2))

但是我不清楚我的minimize声明应该像使用boost::bind。对象是什么类型boost::bind?是否有一个简单的模式可以避免仿函数的样板但允许多个参数绑定?


你可以只使用boost::function。我认为boost::bind确实有自己的返回类型,但与boost::function。典型用途是为函数创建 typedef:

typedef boost::function<bool(std::string)> MyTestFunction;

然后你可以传递任何兼容的函数boost::bind:

bool SomeFunction(int i, std::string s) { return true; }
MyTestFunction f = boost::bind(SomeFunction, 42, _1);
f("and then call it.");

我希望这就是你想要的。

它还可以通过传递this作为第二个参数调用的指针boost::bind.

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

如何将 boost::bind 对象传递给函数? 的相关文章

  • 具有不同大小结构的结构数组的 malloc()

    如果每个结构都包含一个大小不同的字符串数组 那么如何正确地 malloc 一个结构数组 因此每个结构可能有不同的大小 并且不可能 realloc 结构体数量 sizeof 结构体名称 after malloc 初始大小 sizeof 结构名
  • 分段错误(核心转储)错误

    我的程序编译罚款 但在输入文件时出现 分段错误 核心转储 错误 我没有正确处理 ostream 吗 include
  • 内联函数/方法

    声明 内联函数必须在调用之前定义 这个说法正确吗 EDIT 该问题最初是德语 内联功能穆森 弗 伊赫雷姆 奥夫鲁夫定义 sein 也许它对任何人都有帮助 是的 它是正确的 但只是部分正确 它可能正确地重新构建如下 内联函数必须在每个翻译单位
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • (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 我写了一个包含两个指针的
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • mprotect 之后 malloc 导致分段错误

    在使用 mprotect 保护内存区域后第一次调用 malloc 时 我遇到分段错误 这是执行内存分配和保护的代码片段 define PAGESIZE 4096 void paalloc int size Allocates and ali
  • 将字符串转换为正确的 URI 格式?

    有没有简单的方法可以将电子邮件地址字符串转换为正确的 URI 格式 Input http mywebsite com validate email 3DE4ED727750215D957F8A1E4B117C38E7250C33 email
  • 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

    我正在使用外部库 pcl 因此我需要一个不会更改现有函数原型的解决方案 我正在使用的一个函数生成一个std vector
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • 将带有 glut 的点击坐标添加到向量链接列表中

    我想创建一个向量链接列表 并在 GLUT 库的帮助下获取点击的位置并将它们附加到链接列表中 这些是我写的结构 typedef struct vector int x int y Vector typedef struct VectorLis
  • 如何在 C++ 中将 CString 转换为 double?

    我如何转换CString to a double在 C 中 Unicode 支持也很好 Thanks A CString可以转换为LPCTSTR 这基本上是一个const char const wchar t 在 Unicode 版本中 知
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • 从成员函数指针类型生成函子

    我正在尝试简化 通过make fn 预处理参数的函子的生成 通过wrap 对于 arity 的成员函数n 生成函子基本上可以工作 但到目前为止只能通过显式指定成员函数的参数类型来实现 现在我想从它处理的成员函数类型生成正确的函子 struc
  • 2D morton 码编码/解码 64 位

    如何将给定 x y 的莫顿代码 z 顺序 编码 解码为 32 位无符号整数 生成 64 位莫顿代码 反之亦然 我确实有 xy2d 和 d2xy 但仅适用于 16 位宽的坐标 产生 32 位莫顿数 在网上查了很多 但没有找到 请帮忙 如果您可
  • C++ 错误 - “成员初始值设定项表达式列表被视为复合表达式”

    我收到一个我不熟悉的 C 编译器错误 可能是一个非常愚蠢的错误 但我不能完全指出它 Error test cpp 27 error member initializer expression list treated as compound
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 受限 AppDomain 中的代码访问安全异常

    Goal 我需要在权限非常有限的 AppDomain 中运行一些代码 它不应该访问任何花哨或不安全的内容 except对于我在其他地方定义的一些辅助方法 我做了什么 我正在创建一个具有所需基本权限的沙箱 AppDomain 并创建一个运行代

随机推荐

  • “欺骗” SQL Server 接受来自 R 的文件

    我在 R 的本地环境中有一个文件 大约 1000000 行和 15 列 我正在尝试将此文件上传到 SQL 服务器 library odbc library DBI library RODBC dbWriteTable my connecti
  • 无法在本地主机上测试 facebook like 按钮(与以前不同)

    我开发了一个带有 Facebook 社交插件 点赞 推荐和发送按钮 的小网页 直到大约一个月前 我才能在本地主机上成功测试按钮和单击事件 但突然按钮现在无法在本地主机上工作 仅当我通过 localtunnel 将网页部署在公共 IP 上时
  • 修剪 ggplot2 中的第一个和最后一个标签

    我有一个按天列出两种类型数据的图 我希望只修剪图中的第一个和最后一个标签 这是数据的可重现示例 library dplyr library ggplot2 library scales dates lt paste0 2014 01 1 3
  • 读取 D3 中没有标题行的 csv/tsv

    我有 CSV 数据 看起来像 Data 1 1 10 1 2 50 1 3 5 etc 我正在尝试读入数据 但是 我的初始数据不包含标题行 如上所示 因此它将第一个数据行作为标题 1 1 10 有没有办法解决 我想在读取数据后设置标题名称
  • 如何使用 jQuery 验证插件以编程方式检查表单是否有效

    我有一个带有几个按钮的表单 我正在使用 jQuery 验证插件http jquery bassistance de validate http jquery bassistance de validate 我只是想知道是否有任何方法可以检查
  • 为什么我的侧边栏被推到内容下方?

    我正在尝试使用 HTML 和 CSS 设置模板 但我的侧边栏出现问题 它似乎被推到了我的内容下方 尽管它应该是在左侧 我不明白为什么 有没有人有什么建议 Example http jsfiddle net zDdfn http jsfidd
  • 在 SELECT 语句中使用 UDF

    我制作了一个用于计算营业时间的用户定义函数 这是我的UDF CREATE FUNCTION fn GetBusinessHour date datetime addHours int RETURNS datetime AS BEGIN DE
  • 括号() 和 SQL 查询性能

    在where语句中 是否添加不必要的括号 影响SQL性能 Example SELECT FROM table WHERE name John AND age 30 AND address Some Street AND height 510
  • Docker 容器拒绝连接

    我已经为此挣扎了相当长一段时间 我有一个 Django 应用程序 我正在尝试将其打包到容器中 问题是 当我发布到某个端口 8001 时 主机拒绝我的连接 docker machine ip default 192 168 99 100 当我
  • Derby 数据库导出为单个文件?

    我正在制作一个小型应用程序 并且正在使用嵌入式 derby 数据库 我希望该应用程序能够将整个数据库保存到一个文件中 该文件可以存储在硬盘驱动器上 并且还可以通过在未来 关于我该怎么做的任何线索或例子 这可能会帮助你 1 资源1 http
  • wpf按钮点击事件

    In this question https stackoverflow com questions 4720446 wpf adding tabitems dynamically 4722047 4722047我问了关于添加TabItem
  • Knockout.Js 数组过滤器语法

    刚刚开始接触 javascript 和 knockout js 我找到了很多我想要实现的目标的例子 我觉得我可能忽略了一个小语法错误 我正在尝试过滤已返回的集合 这个任务 通过 ajax json 从服务器获取 我的那个工作得很好 我想做的
  • PostgreSQL 未出现 RDS 日志记录

    我按照说明进行操作here https docs aws amazon com AmazonRDS latest UserGuide USER LogAccess Concepts PostgreSQL html 我的参数组更改的摘要如下所
  • 为什么不推荐使用浏览器嗅探?

    你到处都会听到这样的说法 使用 javascript 嗅探用户代理字符串来检测浏览器版本是一件非常糟糕的事情 最新版本的 jQuery 现已弃用 browser物体代替 support 但是 如果出现仅影响 IE 而不是其他浏览器的错误或问
  • 该项目已在选定位置处于源代码管理之下

    如何将 Visual Studio 解决方案添加到 TFS 例如 我创建了一个名为 PROJECTX 的新项目 并且我有名为 PROJECTX sln 的解决方案 我选择File gt Source Control gt Add Solut
  • Matlab立体相机标定场景重建错误

    I am trying to use the Computer Vision System Toolbox to calibrate the pair of cameras below in order to be able to gene
  • Gradle:“buildTypes”无法应用于 groovy.lang.Closure [重复]

    这个问题在这里已经有答案了 改变后targetSdkVersion and compileSdkVersion到22 并改变我的buildToolsVersion到22 0 1 我不断收到以下错误 buildTypes 不能应用于 groo
  • Select2 ajax不显示结果

    我正在使用 select2 和 ajax 来查询我的数据库中特定分类下的术语 但是当我搜索时 搜索框只是挂在 搜索 上而不检索任何结果 这是我的html
  • 为什么MySQL“插入...选择...”比单独选择慢得多?

    我正在尝试将查询结果存储在临时表中以供进一步处理 create temporary table tmpTest a FLOAT b FLOAT c FLOAT engine memory insert into tmpTest select
  • 如何将 boost::bind 对象传递给函数?

    我有一个一维函数最小化器 现在我正在向它传递函数指针 然而 许多函数有多个参数 其中一些参数是固定的 我已经使用像这样的函子实现了这个 template