Use range for loops to iterate const arrays
for (const TypeMapEntry &entry : typeMap) { is much easier to read than for (unsigned i = 0; i < sizeof(typeMap) / sizeof(typeMap[0]); i++) {
for (const TypeMapEntry &entry : typeMap) { is much easier to read than for (unsigned i = 0; i < sizeof(typeMap) / sizeof(typeMap[0]); i++) {