diff options
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/ftoa.h | 1 | ||||
-rwxr-xr-x | utils/utoa.h | 11 |
2 files changed, 9 insertions, 3 deletions
diff --git a/utils/ftoa.h b/utils/ftoa.h index 81a685ac..3dba528d 100755 --- a/utils/ftoa.h +++ b/utils/ftoa.h @@ -243,6 +243,7 @@ char *prepend_pos_nonsci(char *p,F f) { *--p='0'; } else p=utoa(p,u); + return p; } // modify p; return true if handled diff --git a/utils/utoa.h b/utils/utoa.h index 341965cc..5de490ba 100755 --- a/utils/utoa.h +++ b/utils/utoa.h @@ -136,6 +136,9 @@ char *utoa_drop_trailing_0(char *buf,Uint_ n_, unsigned &n_skipped) { } } +//#include "warning_push.h" +//#pragma GCC diagnostic ignore "-Wtype-limits" // because sign check on itoa<unsigned> is annoying + // desired feature: itoa(unsigned) = utoa(unsigned) // positive sign: 0 -> +0, 1-> +1. obviously -n -> -n template <class Int> @@ -167,21 +170,23 @@ char * itoa_left_pad(char *buf,char *bufend,Int i,bool positive_sign=false,char } template <class Int> -inline std::string itos(Int n) { +inline std::string utos(Int n) { char buf[signed_for_int<Int>::toa_bufsize]; char *end=buf+signed_for_int<Int>::toa_bufsize; - char *p=itoa(end,n); + char *p=utoa(end,n); return std::string(p,end); } template <class Int> -inline std::string utos(Int n) { +inline std::string itos(Int n) { char buf[signed_for_int<Int>::toa_bufsize]; char *end=buf+signed_for_int<Int>::toa_bufsize; char *p=itoa(end,n); return std::string(p,end); } +//#include "warning_pop.h" + //returns position of '\0' terminating number written starting at to template <class Int> inline char* append_utoa(char *to,typename signed_for_int<Int>::unsigned_t n) { |