您选择BOOST中的哪个Singleton库?

时间:2010-03-11 15:33:25

标签: c++ boost singleton

谷歌的结果表明,在推荐中有超过1个单身模板/基类,你建议哪一个?

2 个答案:

答案 0 :(得分:8)

你不应该在boost中使用单例,它们仅用于内部目的(请参阅单独libes的“detail”文件夹)。这就是为什么你没有在boost网站上公开Singleton库的原因。

单例类实现起来非常简单,但有许多变体在特定情况下很有用,所以你应该使用符合你认为的单例类似行为的东西。

现在,还有其他图书馆提供单身,最通用的是Loki。但它可能会让你大吃一惊;)


更新:现在有一个名为Singularity的提议库,用于提供非全局单例(可选择使其成为全局),强制您拥有对象的清晰创建和破坏点。

查看审核请求:http://boost.2283326.n4.nabble.com/Review-Request-Singularity-tt3759486.html

一些提升开发人员似乎考虑使用它而不是一些黑客,但是C ++ 11使得使Singleton类比以前更容易,因此它将取决于评论。

答案 1 :(得分:1)

我的boost版本有以下singleton.hpp标题:

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看起来像是一个使用,但它似乎不是真正的提升的一部分(尚不被接受?)。