//LISTING 2 #ifndef SIZED_TYPES_H #define SIZED_TYPES_H #include #include "ctassert.h" //BEGIN MACHINE-DEPENDENT PART typedef unsigned char uint8; typedef signed char int8; typedef unsigned short uint16; typedef short int16; typedef unsigned uint32; typedef int int32; //END MACHINE-DEPENDENT PART //Force compile-time error if the typedefs are inappropriate for this //platform. namespace sized_integer_tests { using namespace std; ctassert::is_integer> t1; ctassert::is_integer> t2; ctassert::is_integer> t3; ctassert::is_integer> t4; ctassert::is_integer> t5; ctassert::is_integer> t6; ctassert::is_signed> t7; ctassert::is_signed> t8; ctassert::is_signed> t9; ctassert::is_signed> t10; ctassert::is_signed> t11; ctassert::is_signed> t12; ctassert::radix == 2> t13; ctassert::radix == 2> t14; ctassert::radix == 2> t15; ctassert::radix == 2> t16; ctassert::radix == 2> t17; ctassert::radix == 2> t18; ctassert::digits == 7> t19; ctassert::digits == 8> t20; ctassert::digits == 15> t21; ctassert::digits == 16> t22; ctassert::digits == 31> t23; ctassert::digits == 32> t24; } #endif