// now when we port to different platforms we have guaranteed fixed size types
// or the compiler generates an error if we use an invalid type.
typedef select_type_size<1, signed_ints>::result_type int8_t;
typedef select_type_size<2, signed_ints>::result_type int16_t;
typedef select_type_size<4, signed_ints>::result_type int32_t;