c++ - 在 boost::signals2 中混合 boost 智能指针和 C++11 智能指针

标签 c++ c++11 boost

我有一个应用程序使用 boost::signals2 在组件之间进行通信。我正在尝试通过 slot_type(...).track(weak_ptr) 使用它的自动连接管理功能。

问题:

在我的整个程序中,使用了 std::shared_ptr.track 需要一个 boost::weak_ptr,而我提供一个 std::weak_ptr

这是我遇到的确切错误:

cannot convert argument 1 from 'std::weak_ptr<_Ty>' to 'const boost::weak_ptr<void> &'

有解决办法吗?还是我误解了问题?

最佳答案

我找到了解决办法,就是用.track_foreign代替.track。它允许使用 C++11 智能指针代替 boost 智能指针。

关于c++ - 在 boost::signals2 中混合 boost 智能指针和 C++11 智能指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22444442/

相关文章:

c++ - boost regex_search 找不到第一个匹配项

c++ - 调用 const 可变 lambda

c++ - 如何将模板类内部的模板类用作带有模板参数的模板模板参数?

multithreading - c++11线程编译错误

c++ - 为什么shared_ptr类型没有模板分配器参数?

c++ - 什么时候必须将 io_context 传递给 boost::asio::spawn? (C++)

c++ - C++ 'struct name' 中的结构未命名类型

c++ - 在 C++ 中实现 "app.exe -instruction file"符号

c++ - 在 C++ 中通过套接字发送图像

c++ - 无法使用 boost::apply_visitor 访问模板对象