问题标签 [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::function 的类 Function,类 Function 可以在 main.cpp 中这样使用:
在我的 Function.hpp 中,我有
上面的代码适用于 Function f = &funct1,
但不适用于 Function b = boost::bind(&funct1, _1);
我想知道 boost::Function 究竟是如何工作的,以及我能做些什么来支持我的 Function 支持 boost::bind
c++ - c++ 类中的静态声明
我不明白为什么第一个不起作用,而第二个起作用!
我还附上了 concurrentQueue 类的开头:
c++ - 复制 boost::function 是否也会复制闭包?
假设我有这样的功能:
如果我创建一个 boost::function ,该函数将在其闭包中存储它自己的对象克隆副本:
现在,如果我开始传递 f,boost::function 复制构造函数是否会再次复制该对象,或者每个函数是否共享相同的闭包?(即像这样)
c++ - 提升元组导致提升绑定/提升功能出现问题?
我认为我的问题在这里很常见,但我只是不太明白我在这里做错了什么。
我正在做一些 boost::asio 的东西并尝试编写一个模板化的异步读取函数。
这是一个函数。
在这个函数的最后一个语句中事情开始变糟了。
当我尝试将变量“x”作为参数传递给 async_read 函数时。
这些错误在长度和缺乏可解读的含义方面都是传奇的。
只是错误输出的一个小例子:
如果我在这里不使用 boost 函数,而是使用注释掉的行,它是对成员函数的引用,事情似乎可以工作,但我无法弄清楚为什么会这样。
AConnection::HandleReadHeader 函数模板的函数签名是:
处理程序的类型:
函数 AsyncRead 和 HandleReadHeader 是我自己的类 AConnection 的成员(可能不重要)。
要么我遗漏了有关创建签名包含 boost::tuple 的 boost::function 对象的语法,要么我的变量 'x 不匹配 boost::asio::async_read 函数的第三个参数类型'。
任何帮助,将不胜感激。谢谢你。
编辑:
这是可以工作的代码,但使用成员函数引用而不是 boost::functon。
c++ - 如何将 2 个独立的 boost::bind() 组合成一个 boost::function?
我有 2 个函数f()
和g()
. 我想每次都按顺序打电话给他们。我可以得到一个boost::function
这样做吗?例如:
进一步扩展,说它需要争论,那么我需要的是一个责任链。每个节点都用参数做一些事情,然后是链的下一个节点。我怎么做?
更新感谢赛斯卡内基的评论。我想我真正想要的是如何将责任链构建成一个单一boost::function
的,链的每个节点都可以通过使用来构建boost::bind()
。
c++ - 带有部分参数的 boost::bind 和 boost::function
我给你贴了一个我想做的例子,这样更容易解释
有任何想法吗?
c++ - boost::bind 并插入 boost::unordered_map
我想用来boost::bind
创建一个boost::function
将一个新的键值对插入到一个中boost::unoredered_map
,但我得到了一些编译错误。
下面的错误看起来像是bind
找不到正确的重载unordered_map::insert
。在这种情况下,我指定了正确的重载,但这次它不起作用。你知道这是什么吗?
c++ - 将 boost::function 克隆为指针并使用该指针调用包装函数
我正在尝试使用指针创建 a 的副本boost::function
并使用该指针调用该函数。我的问题是
- 以这种方式克隆
boost::function
是正确的 - 调用是否
fp->target()
应该调用由 boost::function 包装的函数?
非常感谢
c++ - llvm g++ 和 boost 函数
我试图确定boost::function引入的用于评估数学函数的时间开销与使用function templates
.
我使用的基准代码如下。
使用传统g++
的,开销boost::function
可以忽略不计:
有了llvm-g++
, 有 1.5 倍的速度增益templates function
,但 没有 增益boost::function
。
是否有可能获得 和 的 1.5boost::function
增益llvm-g++
?
boost - Boost.Lambda - 取消引用占位符
有没有办法取消引用 lambda 表达式中的占位符?
我知道我可以进行绑定:
,但我想用 if 语句等构建更复杂的表达式。