Какую библиотеку Singleton в BOOST вы выберете?

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

Ответ 1

Вы не должны использовать синглтоны в boost, они предназначены только для внутренней цели (см. "подробные" папки отдельных libes). Вот почему у вас нет библиотеки Singleton (пока еще), открытой на веб-сайте boost.

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

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


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

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

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

Ответ 2

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