que tengo un montón de constantes que quiero acceso en diferentes partes de mi código, pero que quieren tener fácil acceso a su conjunto:mejores prácticas de C++ para las constantes
static const bool doX = true;
static const bool doY = false;
static const int maxNumX = 5;
etc.
Así que creé un archivo llamado "constants.h" y los puse todos allí y #incluido en cualquier archivo que necesita conocer una constante.
El problema es que esto es terrible para los tiempos de compilación, ya que cada vez que cambio una constante, todos los archivos constantes.h de referencia deben ser reconstruidos. (Además, tal como lo entiendo, dado que son estáticos, estoy generando una copia de doX/doY/maxNumX en el código cada vez que incluyo constantes.h en un nuevo .cpp, lo que lleva a kilobytes de espacio desperdiciado en el compilado EXE: ¿hay alguna forma de ver esto?).
Entonces, quiero una solución. Uno que no es "declarar constantes solo en los archivos que los usan", si es posible.
¿Alguna sugerencia?
En primer lugar: OH NOES, A FEW KILOBYTES !! En segundo lugar: es casi seguro que el compilador los dividirá en una constante, incluso si no se elimina por completo del ejecutable final. – Puppy
¿Por qué asumes que hay una copia física? A menos que haya una necesidad de una ubicación física (como tomar la dirección de la variable), entonces el compilador puede muy felizmente optimizar eso. –
El compilador necesita saber el valor de cada constante durante el tiempo de compilación, si desea obtenerlos doblados – hirschhornsalz