问题标签 [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.

0 投票
1 回答
268 浏览

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

0 投票
2 回答
99 浏览

c++ - c++ 类中的静态声明

我不明白为什么第一个不起作用,而第二个起作用!

我还附上了 concurrentQueue 类的开头:

0 投票
2 回答
2645 浏览

c++ - 复制 boost::function 是否也会复制闭包?

假设我有这样的功能:

如果我创建一个 boost::function ,该函数将在其闭包中存储它自己的对象克隆副本:

现在,如果我开始传递 f,boost::function 复制构造函数是否会再次复制该对象,或者每个函数是否共享相同的闭包?(即像这样)

0 投票
1 回答
412 浏览

c++ - 提升元组导致提升绑定/提升功能出现问题?

我认为我的问题在这里很常见,但我只是不太明白我在这里做错了什么。

我正在做一些 boost::asio 的东西并尝试编写一个模板化的异步读取函数。

这是一个函数。

在这个函数的最后一个语句中事情开始变糟了。

当我尝试将变量“x”作为参数传递给 async_read 函数时。

这些错误在长度和缺乏可解读的含义方面都是传奇的。

只是错误输出的一个小例子:

如果我在这里不使用 boost 函数,而是使用注释掉的行,它是对成员函数的引用,事情似乎可以工作,但我无法弄清楚为什么会这样。

AConnection::HandleReadHeader 函数模板的函数签名是:

处理程序的类型:

函数 AsyncRead 和 HandleReadHeader 是我自己的类 AConnection 的成员(可能不重要)。

要么我遗漏了有关创建签名包含 boost::tuple 的 boost::function 对象的语法,要么我的变量 'x 不匹配 boost::asio::async_read 函数的第三个参数类型'。

任何帮助,将不胜感激。谢谢你。

编辑:

这是可以工作的代码,但使用成员函数引用而不是 boost::functon。

0 投票
3 回答
1641 浏览

c++ - 如何将 2 个独立的 boost::bind() 组合成一个 boost::function?

我有 2 个函数f()g(). 我想每次都按顺序打电话给他们。我可以得到一个boost::function这样做吗?例如:

进一步扩展,说它需要争论,那么我需要的是一个责任链。每个节点都用参数做一些事情,然后是链的下一个节点。我怎么做?


更新感谢赛斯卡内基的评论。我想我真正想要的是如何将责任链构建成一个单一boost::function的,链的每个节点都可以通过使用来构建boost::bind()

0 投票
1 回答
1805 浏览

c++ - 带有部分参数的 boost::bind 和 boost::function

我给你贴了一个我想做的例子,这样更容易解释

有任何想法吗?

0 投票
2 回答
946 浏览

c++ - boost::bind 并插入 boost::unordered_map

我想用来boost::bind创建一个boost::function将一个新的键值对插入到一个中boost::unoredered_map,但我得到了一些编译错误。

下面的错误看起来像是bind找不到正确的重载unordered_map::insert。在这种情况下,我指定了正确的重载,但这次它不起作用。你知道这是什么吗?

0 投票
2 回答
126 浏览

c++ - 将 boost::function 克隆为指针并使用该指针调用包装函数

我正在尝试使用指针创建 a 的副本boost::function并使用该指针调用该函数。我的问题是

  1. 以这种方式克隆boost::function是正确的
  2. 调用是否fp->target()应该调用由 boost::function 包装的函数?

非常感谢

0 投票
1 回答
362 浏览

c++ - llvm g++ 和 boost 函数

我试图确定boost::function引入的用于评估数学函数的时间开销与使用function templates.

我使用的基准代码如下。

使用传统g++的,开销boost::function可以忽略不计:

有了llvm-g++, 有 1.5 倍的速度增益templates function,但 没有 增益boost::function

是否有可能获得 和 的 1.5boost::function增益llvm-g++

0 投票
1 回答
585 浏览

boost - Boost.Lambda - 取消引用占位符

有没有办法取消引用 lambda 表达式中的占位符?

我知道我可以进行绑定:

,但我想用 if 语句等构建更复杂的表达式。