我有一个应用程序使用 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/