40 inline std::string vform(
const char * format, va_list ap, va_list ap1 )
42 char * buf =
new char[vsnprintf( NULL, 0, format, ap ) + 1];
43 vsprintf( buf, format, ap1 );
44 std::string val( buf );
49 inline std::string form(
const char * format, ... )
50 __attribute__(( format( printf, 1, 2 ) ) );
52 inline std::
string form( const
char * format, ... )
56 va_start( ap, format );
57 va_start( ap1, format );
58 std::string val( vform( format, ap, ap1 ) );
64 inline std::string numstring(
char n,
int w = 0 ) {
return form(
"%*hhd", w, n ); }
66 inline std::string numstring(
unsigned char n,
int w = 0 ) {
return form(
"%*hhu", w, n ); }
68 inline std::string numstring(
int n,
int w = 0 ) {
return form(
"%*d", w, n ); }
70 inline std::string numstring(
unsigned n,
int w = 0 ) {
return form(
"%*u", w, n ); }
72 inline std::string numstring(
long n,
int w = 0 ) {
return form(
"%*ld", w, n ); }
74 inline std::string numstring(
unsigned long n,
int w = 0 ) {
return form(
"%*lu", w, n ); }
76 inline std::string hexstring(
char n,
int w = 4 ) {
return form(
"%#0*hhx", w, n ); }
78 inline std::string hexstring(
unsigned char n,
int w = 4 ) {
return form(
"%#0*hhx", w, n ); }
80 inline std::string hexstring(
int n,
int w = 10 ) {
return form(
"%#0*x", w, n ); }
82 inline std::string hexstring(
unsigned n,
int w = 10 ) {
return form(
"%#0*x", w, n ); }
84 inline std::string hexstring(
long n,
int w = 10 ) {
return form(
"%#0*lx", w, n ); }
86 inline std::string hexstring(
unsigned long n,
int w = 10 ) {
return form(
"%#0*lx", w, n ); }
88 inline std::string octstring(
char n,
int w = 4 ) {
return form(
"%#0*hho", w, n ); }
90 inline std::string octstring(
unsigned char n,
int w = 4 ) {
return form(
"%#0*hho", w, n ); }
92 inline std::string octstring(
int n,
int w = 0 ) {
return form(
"%#*o", w, n ); }
94 inline std::string octstring(
unsigned n,
int w = 0 ) {
return form(
"%#*o", w, n ); }
96 inline std::string octstring(
long n,
int w = 0 ) {
return form(
"%#*lo", w, n ); }
98 inline std::string octstring(
unsigned long n,
int w = 0 ) {
return form(
"%#*lo", w, n ); }