谷歌的结果表明,在推荐中有超过1个单身模板/基类,你建议哪一个?
答案 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看起来像是一个使用,但它似乎不是真正的提升的一部分(尚不被接受?)。