Какую библиотеку Singleton в BOOST вы выбираете? - PullRequest
12 голосов
/ 11 марта 2010

Результаты Google говорят, что в надстройке более 1 шаблона / базового класса, какой из них вы предлагаете?

Ответы [ 2 ]

8 голосов
/ 12 марта 2010

Вы не должны использовать синглтоны в boost, они предназначены только для внутреннего использования (см. Папки «detail» отдельных библиотек). Вот почему у вас нет на сайте Boost библиотеки Singleton (пока).

Одноэлементный класс очень прост в реализации, но есть много вариантов, которые полезны в определенных случаях, поэтому вы должны использовать то, что соответствует тому, что, по вашему мнению, должен вести себя синглтон.

Теперь есть другие библиотеки, предоставляющие синглтон, наиболее распространённым из которых является Loki. Но это может взорвать ваш мозг;)


Обновление. В настоящее время предлагается библиотека под названием Singularity, предназначенная для предоставления неглобального синглтона (с возможностью сделать его глобальным), который заставляет вас иметь четкие точки создания и уничтожения объекта.

См. Запрос на обзор: http://boost.2283326.n4.nabble.com/Review-Request-Singularity-tt3759486.html

Некоторые разработчики Boost, похоже, рассматривают возможность его использования вместо некоторых хаков, но C ++ 11 делает создание класса Singleton проще, чем раньше, поэтому это будет зависеть от обзора.

1 голос
/ 12 марта 2010

Моя версия 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 выглядит как тот, который нужно использовать, но, похоже, он не является частью повышения (пока не принято?).

...