print_type
print_type<int8>("int8(0x%hx or %d or '%.1s')\n", pointer);
print_type<uint8>("uint8(0x%hx or %u or '%.1s')\n",
print_type<int16>("int16(0x%x or %d)\n", pointer);
print_type<uint16>("uint16(0x%x or %u\n", pointer);
print_type<int32>("int32(0x%lx or %ld)\n", pointer);
print_type<uint32>("uint32(0x%lx or %lu\n", pointer);
print_type<int64>("int64(0x%Lx or %lld)\n", pointer);
print_type<uint64>("uint64(0x%Lx or %lld\n", pointer);
print_type<float>("float(%.4f)\n", pointer);
print_type<double>("double(%.8f)\n", pointer);
print_type<int16>("int16(0x%x or %d)\n", pointer);
print_type<uint16>("uint16(0x%x or %u)\n", pointer);
print_type<int32>("int32(0x%lx or %ld)\n", pointer);
print_type<uint32>("uint32(0x%lx or %lu)\n", pointer);
print_type<int64>("int64(0x%Lx or %lld)\n", pointer);
print_type<uint64>("uint64(0x%Lx or %lld)\n", pointer);
print_type<float>("float(%.4f)\n", pointer);
print_type<double>("double(%.8f)\n", pointer);