【发布时间】:2018-07-12 21:01:12
【问题描述】:
我正在尝试在 proton::connection 对象的工作队列中添加 proton::work 函数(打开一个新的发送者)。我有一个指向工作队列的指针,但我的问题是如何正确绑定 open_sender 函数。
我知道这里真正的问题:函数的参数:
sender open_sender(const std::string& addr);
由于字符串是通过引用传递的,我必须取消引用它。我没问题,但是如何使用质子工具呢?
这是我的代码行:
proton::work w = proton::make_work( &proton::connection::open_sender, &m_connection, p_url);
注意:
- 当然我的项目中没有使用C++11,太简单了 问 ;) !
- 当然不能改成C++11
- 如果您对如何在多线程程序中创建新发件人有更好的了解,请告诉我。
【问题讨论】:
-
"由于字符串是通过引用传递的,我必须取消引用它。" .. 什么?您不需要“取消引用”引用。那会是什么样子?
-
我的意思是相当于 boost::cref(),为 boost::bind() 的内部机制复制引用对象。这就是为什么我称它为“取消引用”它。
-
好吧,你(和其他必须使用 C++11 之前的人)是我们将 make_work API 添加到质子 C++ 绑定的确切原因!这正是它应该使用的方式。您不会说您在使用它时是否遇到问题或问题是什么 - 在这种情况下很难提供帮助。
-
哦 - 我现在明白你想要达到的目标 - 我会写一个实际的答案。