Tengo una enumeración con algunos casos diferentes que son tipos diferentes, por ejemplo enum X { case AsInt(Int) case AsDouble(Double) } Puedo switch estos muy bien para recuperar el valor subyacente. Sin embargo, la instrucción switch es muy molesta al tratar de hacer que ejecute algún código para los otros casos que simplemente no me […]
¿Hay alguna forma de tiempo de comstackción para detectar / prevenir valores duplicados dentro de una enumeración C / C ++? El problema es que hay varios elementos que se inicializan a valores explícitos . Fondo: Heredé un código C como el siguiente: #define BASE1_VAL (5) #define BASE2_VAL (7) typedef enum { MsgFoo1A = BASE1_VAL, […]
Esto puede haber sido respondido en otro lugar, pero no pude encontrar una respuesta adecuada. Tengo este código: enum enumWizardPage { WP_NONE = 0x00, WP_CMDID = 0x01, WP_LEAGUES = 0x02, WP_TEAMS = 0x04, WP_COMP = 0x08, WP_DIVISIONS = 0x10, WP_FORMULAS = 0x20, WP_FINISHED = 0x40, }; Lo cual es heredado y tengo que modificarlo agregando […]
Me di cuenta de que el siguiente fragmento … @Override public boolean equals(Object otherObject) { … } … no está permitido para un Enum, ya que el método equals(Object x) se define como final en Enum . ¿Por qué esto es tan? No puedo pensar en ningún caso de uso que requiera reemplazar los equals(Object) […]
No estoy seguro de cómo burlarse de una clase Enum singleton. public enum SingletonObject{ INSTANCE; private int num; protected setNum(int num) { this.num = num; } public int getNum() { return num; } Me gustaría poner getNum () en el ejemplo anterior, pero no puedo imaginarme cómo simular la clase SingletonObject real. Pensé que usar […]
En Java anterior a JDK1.5, el patrón “Typesafe Enum” era la forma habitual de implementar un tipo que solo puede tomar un número finito de valores: public class Suit { private final String name; public static final Suit CLUBS =new Suit(“clubs”); public static final Suit DIAMONDS =new Suit(“diamonds”); public static final Suit HEARTS =new Suit(“hearts”); […]
¿Cuál es la diferencia entre usar una instrucción define y una instrucción enum en C / C ++ (y hay alguna diferencia al usarlas con C o C ++)? Por ejemplo, cuando debería uno usar enum {BUFFER = 1234}; encima #define BUFFER 1234
¿Cómo puedo obtener la cantidad de elementos definidos en una enumeración?
gcc no parece producir una advertencia con el siguiente código. ¿Cómo puedo hacer que produzca una advertencia? typedef enum { REG8_A, REG8_B, REG8_C }REG8; typedef enum { REG16_A, REG16_B, REG16_C }REG16; void function(REG8 reg8) { } int main(void) { function(REG16_A); // Should warn about wrong enum }
Me pregunto si hay alguna manera de evitar una enum con claves duplicadas para comstackr? Por ejemplo, esta enum continuación comstackrá public enum EDuplicates { Unique, Duplicate = 0, Keys = 1, Comstacktion = 1 } Aunque este código Console.WriteLine(EDuplicates.Unique); Console.WriteLine(EDuplicates.Duplicate); Console.WriteLine(EDuplicates.Keys); Console.WriteLine(EDuplicates.Comstacktion); Se imprimirá Duplicate Duplicate Keys Keys