问题标签 [boost-function]
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++ - 使用 boost::function 和 boost::bind 到成员变量
我正在尝试创建一个 boost::function 允许设置对象的成员变量。我创建了一个我能想到的最简单的例子来了解我正在尝试(和失败)做的事情。我觉得我掌握了 boost::bind,但我是 boost 的新手,我相信我错误地使用了 boost::function。
我在第 28 行遇到错误,我想使用该函数将 Foo::value 设置为 10。我只是在处理这整件事错了吗?我应该只传回一个 int* 或其他东西,而不是使用 boost 来完成所有这些吗?我之所以调用“getFcn()”是因为在我的实际项目中我使用的是消息传递系统,如果包含我想要的数据的对象不再存在,getFcn 将返回一个空的 boost::function。但我想如果没有找到任何东西,我可以使用 int* 返回 NULL。
c++ - 在容器中存储 boost::function 对象
我有一个向量KeyCallback
:
我用它来存储按下键盘按钮时的所有侦听器。我可以添加它们并将事件发送到所有回调for_each
,但我不知道如何KeyCallback
从我的向量中实际删除特定签名。
例如我想要这样的东西:
根据boost::function
文档(参见此处),没有比较函数对象之类的东西,这可以解释我的上述问题。那我卡住了吗?有什么好办法吗?
(我阅读了有关boost::signals
回调机制的信息,但它显然很慢,我希望回调可能每帧触发几次。)
c++ - 带有 boost:function 定义的 boost:signals 映射
我正在尝试创建一个简单的管理器,它将错误代码映射到函数。但是由于地图复制了值并且信号是不可复制的,所以这不是解决方案。我不能使用 shared_ptr 指针映射,因为 * 运算符在 boost::function 中被阻止。
我应该使用哪个集合来存储它?
c++ - 如何从`boost::function`中获取C指针(如`var (*)(void*, var)`)?
所以我使用Flash C++ 编译器(又名 flascc,alchemy)和 havin 代码,例如:
得到下一个编译器错误:
所以问题是如何从boost::function<var (void*, var)>
更多的C风格中获得var (*)(void*, var)
c++ - 将 boost::function 传递给模板;boost::function 是什么类
我需要将距离函数传递给模板。因此我使用 boost::function 和 boost::bind。但我不明白我必须通过什么课程距离:
模板作者的示例如下所示:
现在这是我的主要内容:
首先,有人能解释一下 (*const) 是什么意思,或者我可以在哪里读到这个吗?
第二:我想我写了你需要的一切,告诉你要写什么???但我不明白。
我已经尝试过:
和
但这是很好的尝试和错误:)
c++ - 使用提取从 boost::python::object 展开 boost::function
如何从 C++ 调用 C++ 模块函数但从 python 中选择函数?请参阅下面的示例
我知道我可以手动设置字符串映射,然后选择我想要运行的函数,但我想要一个更干净的 python 解决方案。
我还希望它非常高效,希望基本上是解开 boost::python::object 并从中提取 boost::function<> 。
这是python文件
C++ 模块代码(编译,但不运行..你可以看到我的意图):
如果你能让它运行,也很想看看你的时间安排。
c++ - std::function 与原始函数指针和 void* this 相比的性能?
库代码:
申请代码:
以上是回调机制的最小实现。它更冗长,不支持绑定、占位符等,例如 std::function。如果我对上述用例使用std::function
or boost::function
,会有任何性能缺陷吗?此回调将处于实时应用程序的非常关键的路径中。我听说 boost::function 使用虚函数来进行实际的调度。如果不涉及绑定/占位符,那会被优化吗?
更新
对于那些有兴趣在最新编译器中检查程序集的人:https ://gcc.godbolt.org/z/-6mQvt
c++ - 为什么“boost::function = boost::bind(...)”会创建 13 个临时对象?
我有一些非常基本的测试代码。我有一个只记录所有操作的类。我将它绑定到这样的boost::function
对象:
我希望函数对象包含f
. 因此,必须创建至少一个副本。但是,我发现我得到了13 个临时对象。输出是:
我不能使用ref
或者cref
因为我确实需要它来制作对象的副本。我做错了什么可怕的事情吗?或者我是否需要使用包装器(如boost::shared_ptr
)来避免荒谬的副本数量?
完整的代码和问题演示可以在 Codepad上找到。
c++ - 如何将参数绑定到 boost::function 中?
从 boost::bind 文档(http://www.boost.org/doc/libs/1_53_0/libs/bind/bind.html#with_functions)中,“绑定的参数被复制并由返回的函数在内部保存对象”,但是如果有办法可以将参数复制到那些函数对象中?
IE:
提前致谢。
solr - Solr MoreLikeThis 和使用 Boost 函数(Boost 最近的项目)
我有一个类似的问题,如“在 MoreLikeThis Solr 请求处理程序中提升最近的项目”在 MoreLikeThis Solr 请求处理程序中提升最近的项目
我想提升从 MoreLikeThis 处理程序或组件返回的最近项目。我发现 MoreLikeThisHandler 不支持 bf ,因为它是 Dismax 参数。
因此我尝试了以下(在我的 solrconfig.xml 中):
和