unity español enum description como acceder enums d phobos

enums - español - ¿Por qué usa Phobos enumeración para constantes?



enum c++ (2)

  1. Una enumeración es sólo un valor, no un valor. No tiene dirección.
  2. Una enumeración solo puede ser una constante de tiempo de compilación, no una constante de tiempo de ejecución.
  3. Las enumeraciones no agregan ninguna hinchazón al archivo de objeto.
  4. Enums compilar más rápido y usar menos memoria en tiempo de compilación. Por lo general, es insignificante, pero si está realizando una metaprogramación suficientemente complicada, puede comenzar a importar.

En general, para las cosas que son constantes de tiempo de compilación en lugar de las constantes de tiempo de ejecución, no hay desventaja al usar una enumeración, y tiene las ventajas de hacer que sus intenciones sean absolutamente claras y ligeramente más eficientes.

Edición: Otro caso de uso para enums puede ser desambiguar al compilador si una función debe evaluarse en tiempo de ejecución o compilación. Si el resultado de una función se asigna a una variable de pila immutable , la función se evaluará en tiempo de ejecución. Si utiliza una enum en el mismo ámbito, el resultado se evaluará en el momento de la compilación.

¿Por qué usa Phobos la enum para definir constantes? Por ejemplo, en std.math:

enum real E = 2.7182818284590452354L;

¿Por qué no utilizar un immutable global? ¿Cuáles son las ventajas / desventajas de enum sobre immutable ?


IIRC en D enum A = B; es más o menos lo mismo que #define AB está en C. Siempre se sustituye como un literal en cualquier expresión que lo use.