C++ 信号vs信号2

C++ 信号vs信号2,c++,boost,signals-slots,boost-signals,C++,Boost,Signals Slots,Boost Signals,我有一个应用程序可以从使用boost的一个信号库而不是一个自制的解决方案中获益 应用程序是多线程的,但执行信号处理的部分是单线程的 如果多线程不是问题的话,有什么理由更喜欢Boost.Signals2而不是Boost.Signal吗?最初,如果所有信号和插槽都在同一个线程中,Boost.signals就可以了。然而,它不再被维护——文档建议在所有新的代码中使用SaleSals2。 STOST.DATA信号现在被弃用,而STUST.StimultSals2应该被使用(参见)确保您也考虑它——特别值

我有一个应用程序可以从使用boost的一个信号库而不是一个自制的解决方案中获益

应用程序是多线程的,但执行信号处理的部分是单线程的


如果多线程不是问题的话,有什么理由更喜欢Boost.Signals2而不是Boost.Signal吗?

最初,如果所有信号和插槽都在同一个线程中,Boost.signals就可以了。然而,它不再被维护——文档建议在所有新的代码中使用SaleSals2。

STOST.DATA信号现在被弃用,而STUST.StimultSals2应该被使用(参见)

确保您也考虑它——特别值得注意。@ ILJJARN:不幸的是LITCTSCB需要GCC。我不知道库的其他部分,但原子只是为GCC实现的。一旦Visual Studio获得C++11
std::atomic
,它就可以进行简单的移植。另一种选择是使用当前正在审查的:-]此外,如果您还没有看到它,Signal2文档已经列出了信号的主要更改,包括与线程安全无关的增强或删除功能:另一个要考虑的库可能是Sarah Thompson的SigsPosits:SealAls2在信号上有其他变化,因此应该考虑在该页上引用一个重要注释(方便):“Boost.Signals不再被积极维护。不要将Boost.Signals用于新开发(而是使用Boost.Signals2)。如果现有的基于BooSt.Stand的代码,它将继续工作,但是考虑移动到BooSt.Simuls2。Signals2文档中有一个移植指南,“老实说,大多数时候,当你开始使用一个好的特性时,你最终会希望在其他地方使用它,而不是在最初需要它的地方。