casi que para calcular el tamaño del array usaría una macro
Código C++:
Ver original#define NUM_ELEMS(x) (sizeof(x)/sizeof(*(x)))
aunque si tiramos de recursos, nos encontramos con una macro un pelín más compleja pero con menos margen de error. Esta macro viene del projecto Google chromium:
Código C++:
Ver original#define COUNT_OF(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
La gracia de esta macro es que 0[x] en los compiladores de C equivale al clásico x[0]... pero en los compiladores de C++ se producirá un error si x es una clase que sobrecarga el operador []... vamos que es una especie de seguro que evita que usemos la macro con objetos.
¿Por qué usar una macro aquí? para evitar repetir el código cada dos por tres:
Código C++:
Ver originalfor(int i = 0; i < NUM_ELEMS(x); i++){
cout<<x[i]<<endl;
Un saludo