C++11 uint types vs u_int
c++11, cstdint, uint
Solution
Is there any difference between `u_int8_t` and `uint8_t`?
`u_int8_t` is just a very old name that was not standardised. Avoid it.
Is there a reason (besides legacy code) to use `u_int8_t`?
Suicide by coworker.
Is it safe to assume that `uint8_t` will be present if I use a C++11 compiler (on different OS or architectures)?
The C++ standard requires it to be present on all implementations that have an unsigned 8-bit type available (today that means everything that is not exotic).
Are the answers to the above questions also valid for the other types (`intX_t` and `uintX_t`)?
Pretty much, yes.
Problem
I just stumbled upon the type `u_int8_t` because it did not compile in Windows+MinGW (but compiled fine under Linux). According to this site the C++11 standard defines the type `uint8_t`. I just used the latter and everything worked. The questions that arised are: - Is there any difference between `u_int8_t` and `uint8_t`? - Is there a reason (besides legacy code) to use `u_int8_t`? - Is it safe to assume that `uint8_t` will be present if I use a C++11 compiler (on different OS or architectures)? - Are the answers to the above questions also valid for the other types (`intX_t` and `uintX_t`)?