Tengo un tipo enumerado StackID
, y estoy usando la enumeración para referirme a un índice de un vector particular y hace que mi código sea más fácil de leer. Sin embargo, ahora necesito crear una variable llamada nextAvail
de tipo StackID
. (en realidad se refiere a un stackID particular). Traté de incrementarlo pero en C++, el siguiente es ilegal:¿Por qué no puedo incrementar una variable de un tipo enumerado?
nextAvail++;
¿Qué tipo de sentido para mí ... porque no hay comprobación de límites.
Probablemente esté pasando por alto algo obvio, pero ¿cuál es un buen sustituto?
También quiero hacer un enlace a this pregunta.
@sbi - Ciertamente me haría las cosas simples para hacer esto. pero, ¿qué le dice a los carteles que sugieren que un 'enum' está destinado a expresar un conjunto de valores arbitrarios? – BeeBand
@BeeBand - si hay algún uso para el '++', supongo que tienes una buena razón para ir más allá del uso convencional de enums de C++ como citas verificadas en tiempo de compilación. Por otro lado, el código de Sbi podría hacer con algún control encuadernado. En Java, las enumeraciones son solo un tipo de clases livianas con miembros no modificables; se acepta la práctica de colocar métodos en ellas. Ver http://download.oracle.com/javase/1.5.0/docs/guide/language/enums.html. – tucuxi
@BeeBand: No estoy de acuerdo. Probablemente, cinco de cada diez ejemplos de libros de texto enum son algo así como "mes enum {Jan, Feb, ..., Dec};' y por lo tanto un ejemplo perfecto para enenumeraciones que pueden incrementarse. Durante los últimos> 15 años de hacer C++, he sobrecargado 'operator ++' para enumeraciones probablemente menos de cinco veces. Pero lo he hecho. – sbi