Los resultados de Google dicen que hay más de 1 plantilla singleton/baseclass en boost, ¿cuál sugieres?¿Qué biblioteca de Singleton en BOOST elige?
Respuesta
No debe utilizar los singletons en boost, solo para fines internos (consulte las carpetas "detail" de libes independientes). Es por eso que no tienes una biblioteca de Singleton (todavía) expuesta en el sitio web de impulso.
Una clase singleton es muy simple de implementar pero hay muchas variantes que son útiles en casos específicos, por lo que debe usar algo que se adapte a lo que usted piensa que debería ser un singleton.
Ahora, hay otras bibliotecas que proporcionan singleton, la más genérica es Loki. Pero podría volar tu mente;)
Actualización: En la actualidad existe una biblioteca propuesta denominada singularidad que está destinado a proporcionar Singleton no global (con la opción para que sea global) que obliga a tener la creación clara y puntos de destrucción del objeto.
Véase la solicitud de revisión: http://boost.2283326.n4.nabble.com/Review-Request-Singularity-tt3759486.html
Algunos desarrolladores a impulsar parece considerar el uso de ella en lugar de algunos hacks, pero C++ 11 hace makeing una clase Singleton más fácil que antes, así lo hará depende de la opinión.
Mi versión de impulso ha singleton.hpp siguientes encabezados:
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
no he utilizado ninguna de ellas, pero probablemente me mantenga alejado de los directorios en detalle.
De todos modos, http://torjo.com/tobias/index.html#boost_utility_singleton.reference.singleton parece uno para usar, pero no parece ser realmente una parte del impulso (¿aún no aceptado?).
- 1. ¿Qué elige, protegido o interno?
- 2. Building Boost en Linux - nombres de biblioteca
- 3. Qué línea se elige para informar en la excepción
- 4. ¿Sugerencias para enviar una biblioteca a Boost?
- 5. Singleton - ¿Por qué usar clases?
- 6. ¿Qué es un puntero Singleton en C?
- 7. ¿Cómo elige la compilación a qué función de plantilla llamar?
- 8. ¿Cómo el enlazador gcc elige/usr/lib versus/usr/lib64 para la resolución de la biblioteca?
- 9. C++ "Parámetro idiomático con nombre" vs. Boost :: Biblioteca de parámetros
- 10. Instalar y compilar la biblioteca Boost en Linux
- 11. ¿De qué sirve usar boost :: mem_fn si tenemos boost :: bind?
- 12. ¿Hay algún buen libro para la biblioteca Boost C++ y para Object Oriented Design en C++?
- 13. Cómo vincular Boost en una biblioteca estática dependiente
- 14. Linking boost a la biblioteca compartida con CMake en Linux
- 15. ¿Cómo puedo usar la biblioteca Boost :: regex.hpp en C++?
- 16. Combinación de una biblioteca de álgebra lineal con Boost :: Unidades
- 17. boost pool_alloc
- 18. ¿Por qué usar boost :: ice_or en lugar de || y boost :: ice_and en lugar de && en enable_if?
- 19. boost distribuido con la biblioteca de código cerrado
- 20. cómo organizar casos de prueba con la biblioteca boost :: test?
- 21. Modificar las propiedades de los vértices en un Boost :: Graph
- 22. Qué bibliotecas Boost aprovechan Move Semantics
- 23. Boost: ¿qué es exactamente inseguro en Boost.Signals?
- 24. ¿Qué es boost :: program_options :: notify() for?
- 25. ¿Por qué la clase Singleton debe sellarse?
- 26. Singleton en ExtJs4
- 27. ¿Por qué utilizar un singleton en lugar de métodos estáticos?
- 28. ¿Por qué utilizar singleton en lugar de clase estática?
- 29. Patrón de diseño singleton vs Singleton beans en contenedor Spring
- 30. Roles de Singleton en Moose
Singletons son malvados. ¡Son solo variables globales en un disfraz políticamente correcto! – Tronic
Para darle un fondo, jalf lo puso bien, p. aquí: http://stackoverflow.com/questions/86582/singleton-how-should-it-be-used/761711#761711 (creo que elaboró más en otro lugar, pero no puede encontrarlo ahora). –
@gf: Creo que ya mencioné este punto en al menos una docena de preguntas diferentes. ;) aquí (http://stackoverflow.com/questions/1020312/are-singletons-really-that-bad/1020384#1020384) es otro. Y, aparentemente, convertí a GMan a mi punto de vista también, según su blog: (http://blackninjagames.com/?p=24), pero no puedo encontrar el hilo en el que está basado en este momento. :) Así que sí, aunque podría no responder la pregunta del OP, diría "no utilices ninguna de las clases singleton en boost". :) – jalf