I work in games middleware and we mostly use float32, that doesn't mean we care 
about what is the default of an unspecified type.

The game industry really dislikes unspecified sizes, and therefore will 
systematically use an explicitly sized type, which means, Nim's float32. And 
typedef it to mycompany_float if the company culture has it this way (quite 
common).

Personally I'm a big fan of boost/integers 
[https://www.boost.org/doc/libs/1_67_0/boost/cstdint.hpp](https://www.boost.org/doc/libs/1_67_0/boost/cstdint.hpp)
 inspired by C99 standard IIRC (uint8_t family). So again, no room for platform 
specific variability, we stay in explicit control of the sizes.

Note that in C, nothing is guaranteed about types's sizes: the only thing that 
the standard says, is the relation wrt their sizeof. More explicitely, it is 
guaranteed that sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(x*) <= 
sizeof(long). And sizeof(char) is 1 by definition. But nowhere it is said that 
int must be the natural platform word size for example, that's an urban legend.

Back to games and stuff, we also use half floats (16 bits floats), 10bits 
floats, and 11 bits floats (for R10G11B10A2 format); as well as fixed point 
precision with custom quantization of specific values, like depth in a shadow 
map, or particles data that must be heavily compressed. 

Reply via email to