关于c ++:您选择BOOST中的哪个Singleton库?

Which Singleton library in BOOST do you choose?

谷歌搜索结果显示Boost中有超过1个单例模板/基类,您建议使用哪一个?


你不应该在Boost中使用单件,它们只用于内部目的(参见单独libes的"detail"文件夹)。这就是为什么你还没有在Boost网站上公开单件图书馆的原因。

singleton类的实现非常简单,但在特定情况下有许多变体是有用的,因此您应该使用符合您认为singleton行为方式的变体。

现在,还有其他的库提供singleton,最通用的是loki。但它会让你心烦意乱;)

更新:现在有一个被提议的库称为奇点,目的是提供非全局的单例(可以选择使它成为全局的),迫使你有明确的对象的创建和破坏点。

查看查看请求:http://boost.2283326.n4.nabble.com/review-request-singularity-tt3759486.html

一些Poost DEVs似乎考虑使用它代替一些黑客,但是C++ 11使一个类单体比以前更容易,所以它将取决于审查。


我的Boost版本有以下singleton.hpp头文件:

1
2
3
C:\boost_1_38_0\boost\pool\detail\singleton.hpp
C:\boost_1_38_0\boost\serialization\singleton.hpp
C:\boost_1_38_0\boost\thread\detail\singleton.hpp

我没有用过这些,但我可能会远离详细目录中的那些。

不管怎样,http://torjo.com/tobias/index.html boost-utility_singleton.reference.singleton看起来像是要使用的工具,但它似乎不是boost的一部分(还没有被接受?).