17 inline T
str2number(
const char *str,
int base,
bool safe)
24 const __int64 val=_strtoi64(str, &endptr, base);
26 const long long val=strtoll(str, &endptr, base);
34 if(std::numeric_limits<T>::min()==0)
38 assert((T)val <= std::numeric_limits<T>::max());
43 assert(val <= (
long long)std::numeric_limits<T>::max());
44 assert(val >= (
long long)std::numeric_limits<T>::min());
53 return str2number<unsigned>(str.c_str(), base,
true);
58 return str2number<std::size_t>(str.c_str(), base,
true);
63 return str2number<int>(str.c_str(), base,
false);
68 return str2number<unsigned>(str.c_str(), base,
false);
73 return str2number<std::size_t>(str.c_str(), base,
false);
77 const std::string &str,
80 return str2number<signed long long int>(str.c_str(), base,
false);
84 const std::string &str,
87 return str2number<unsigned long long int>(str.c_str(), base,
false);
unsigned unsafe_string2unsigned(const std::string &str, int base)
std::size_t safe_string2size_t(const std::string &str, int base)
signed long long int unsafe_string2signedlonglong(const std::string &str, int base)
T str2number(const char *str, int base, bool safe)
unsigned long long int unsafe_string2unsignedlonglong(const std::string &str, int base)
std::size_t unsafe_string2size_t(const std::string &str, int base)
unsigned safe_string2unsigned(const std::string &str, int base)
int unsafe_string2int(const std::string &str, int base)