00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef OR_TOOLS_BASE_STRTOINT_H_
00015 #define OR_TOOLS_BASE_STRTOINT_H_
00016
00017 #include <stdlib.h>
00018 #include <string>
00019 #include "base/basictypes.h"
00020
00021 namespace operations_research {
00022
00023
00024 inline int32 strto32(const char *nptr, char **endptr, int base) {
00025 return strtol(nptr, endptr, base);
00026 }
00027
00028 inline uint32 strtou32(const char *nptr, char **endptr, int base) {
00029 return strtoul(nptr, endptr, base);
00030 }
00031
00032
00033
00034 inline int64 strto64(const char *nptr, char **endptr, int base) {
00035 #if defined(_MSC_VER)
00036 return _strtoi64(nptr, endptr, base);
00037 #else
00038 return strtoll(nptr, endptr, base);
00039 #endif // _MSC_VER
00040 }
00041
00042 inline uint64 strtou64(const char *nptr, char **endptr, int base) {
00043 #if defined(_MSC_VER)
00044 return _strtoui64(nptr, endptr, base);
00045 #else
00046 return strtoull(nptr, endptr, base);
00047 #endif // _MSC_VER
00048 }
00049
00050
00051
00052 inline int32 atoi32(const char *nptr) {
00053 return strto32(nptr, NULL, 10);
00054 }
00055
00056 inline int64 atoi64(const char *nptr) {
00057 return strto64(nptr, NULL, 10);
00058 }
00059
00060
00061 inline int32 atoi32(const std::string &s) {
00062 return atoi32(s.c_str());
00063 }
00064
00065 inline int64 atoi64(const std::string &s) {
00066 return atoi64(s.c_str());
00067 }
00068 }
00069 #endif // OR_TOOLS_BASE_STRTOINT_H_