21 #include <tjutils/tjutils.h>
22 #include <tjutils/tjcomplex.h>
35 typedef unsigned char u8bit;
37 #error "sizeof(char)!=1"
42 typedef unsigned short u16bit;
44 #error "sizeof(short)!=2"
49 typedef unsigned int u32bit;
53 typedef unsigned long u32bit;
55 #error "sizeof(int)!=4 and sizeof(long)!=4"
71 static STD_string type2string(s8bit v) {
return itos(v);}
72 static STD_string type2string(u8bit v) {
return itos(v);}
73 static STD_string type2string(s16bit v) {
return itos(v);}
74 static STD_string type2string(u16bit v) {
return itos(v);}
75 static STD_string type2string(s32bit v) {
return itos(v);}
76 static STD_string type2string(u32bit v) {
return itos(v);}
77 static STD_string type2string(
float v) {
return ftos(v);}
78 static STD_string type2string(
double v) {
return ftos(
float(v));}
79 static STD_string type2string(
const STD_complex& v) {
return ctos(v);}
80 static STD_string type2string(
const STD_string& v) {
return v;}
83 static void string2type(
const STD_string& s, s8bit& v) {v=(s8bit)atoi(s.c_str());}
84 static void string2type(
const STD_string& s, u8bit& v) {v=(u8bit)atoi(s.c_str());}
85 static void string2type(
const STD_string& s, s16bit& v) {v=(s16bit)atoi(s.c_str());}
86 static void string2type(
const STD_string& s, u16bit& v) {v=(u16bit)atoi(s.c_str());}
87 static void string2type(
const STD_string& s, s32bit& v) {v=(s32bit)atoi(s.c_str());}
88 static void string2type(
const STD_string& s, u32bit& v) {v=(u32bit)atoi(s.c_str());}
89 static void string2type(
const STD_string& s,
float& v) {v=(float)atof(s.c_str());}
90 static void string2type(
const STD_string& s,
double& v) {v=atof(s.c_str());}
91 static void string2type(
const STD_string& s, STD_complex& v) {v=
stoc(s);}
92 static void string2type(
const STD_string& s, STD_string& v) {v=s;}
95 static const char* type2label(s8bit) {
return "s8bit";}
96 static const char* type2label(u8bit) {
return "u8bit";}
97 static const char* type2label(s16bit) {
return "s16bit";}
98 static const char* type2label(u16bit) {
return "u16bit";}
99 static const char* type2label(s32bit) {
return "s32bit";}
100 static const char* type2label(u32bit) {
return "u32bit";}
101 static const char* type2label(
float) {
return "float";}
102 static const char* type2label(
double) {
return "double";}
103 static const char* type2label(
const STD_complex&) {
return "complex";}
104 static const char* type2label(
const STD_string&) {
return "string";}
109 static unsigned int typesize(
const STD_string& typelabel);
static unsigned int typesize(const STD_string &typelabel)
STD_string ctos(const STD_complex &z)
STD_complex stoc(const STD_string &s)
STD_string ftos(double f, unsigned int digits=_DEFAULT_DIGITS_, expFormat eformat=autoExp)
STD_string itos(int i, unsigned int maxabs=0)