Nop.
Si lo hubiera, no se vería tanto código como este:
enum E {
VALUE_BLAH,
VALUE_OTHERBLAH,
...
VALUE_FINALBLAH,
VALUE_COUNT
}
Tenga en cuenta que este código es también un indicio de una solución (desagradable) - si se agrega un "protector" definitiva elemento, y no establece explícitamente los valores de los campos de enumeración, a continuación, el último elemento "cOUNT" tendrá el valor que está buscando - esto sucede porque el recuento de enumeración es cero basada en:
enum B {
ONE, // has value = 0
TWO, // has value = 1
THREE, // has value = 2
COUNT // has value = 3 - cardinality of enum without COUNT
}
Gracias, que parece una solución tan buena como la que voy a llegar a. – rofrankel
Por supuesto, solo funciona para enumeraciones continuas. Si alguna vez tienes un 'hoyo' como en una lista de códigos de error, estás jodido. –
Publiqué una macro simple que hace el truco y maneja los problemas de "agujeros". –