tengo algo de código C++, en la que se declara la siguiente enumeración:¿Existe algún paradigma bien conocido para iterar los valores enum?
enum Some
{
Some_Alpha = 0,
Some_Beta,
Some_Gamma,
Some_Total
};
int array[Some_Total];
Los valores de Alfa, Beta y Gamma son secuenciales, y con mucho gusto utilizar el siguiente ciclo para iterar a través de ellos:
for (int someNo = (int)Some_Alpha; someNo < (int)Some_Total; ++someNo) {}
Este ciclo está bien, hasta que decida cambiar el orden de las declaraciones en la enumeración, por ejemplo, haciendo que Beta sea el primer valor y Alpha, el segundo. Eso invalida el encabezado del ciclo, porque ahora tengo que iterar de Beta a Total. Entonces, ¿cuáles son las mejores prácticas de iteración a través de enum? Quiero iterar a través de todos los valores sin cambiar los encabezados de ciclo cada vez. No puedo pensar en una solución:
enum Some
{
Some_Start = -1,
Some_Alpha,
...
Some_Total
};
int array[Some_Total];
e iterar a partir de (Start + 1) al total, pero parece feo y nunca he visto a alguien hacerlo en el código. ¿Existe algún paradigma bien conocido para iterar a través de la enumeración, o simplemente tengo que fijar el orden de los valores enum? (Vamos a suponer que, realmente tengo algunas razones impresionantes para cambiar el orden de los valores de enumeración) ...
Podría dar un ejemplo de cuando esto es necesario? ¿O es esto puramente teórico? – Zed
Mi código depende de las decisiones del equipo de los diseñadores. A veces cambian de opinión sobre el orden de los elementos presentes en la pantalla. Tengo que actualizar mis valores enum de acuerdo con el orden actual de los elementos ... – SadSido
Normalmente, no cambiaría el orden; si lo hace, las cosas que dependen de ese orden (si está utilizando enumeraciones en ambos extremos de un sistema de comunicación, escribiendo los valores en un archivo/base de datos) se romperá. –