@@ -125,15 +125,17 @@ struct parser {
125
125
} else if constexpr (std::is_same<T, char >::value || std::is_same<T, signed char >::value ||
126
126
std::is_same<T, unsigned char >::value) {
127
127
return value.front ();
128
- } else if constexpr (std::is_same<T, unsigned int >::value || std::is_same<T, int >::value ||
129
- std::is_same<T, unsigned short int >::value ||
130
- std::is_same<T, short int >::value) {
128
+ } else if constexpr (std::is_same<T, int >::value || std::is_same<T, short int >::value) {
131
129
return std::strtol (value.c_str (), nullptr , 10 );
132
- } else if constexpr (std::is_same<T, unsigned long int >::value ||
133
- std::is_same<T, long int >::value ||
134
- std::is_same<T, unsigned long long int >::value ||
130
+ } else if constexpr (std::is_same<T, unsigned int >::value ||
131
+ std::is_same<T, unsigned short int >::value) {
132
+ return std::strtoul (value.c_str (), nullptr , 10 );
133
+ } else if constexpr (std::is_same<T, long int >::value ||
135
134
std::is_same<T, long long int >::value) {
136
135
return std::strtoll (value.c_str (), nullptr , 10 );
136
+ } else if constexpr (std::is_same<T, unsigned long int >::value ||
137
+ std::is_same<T, unsigned long long int >::value) {
138
+ return std::strtoull (value.c_str (), nullptr , 10 );
137
139
} else if constexpr (std::is_same<T, float >::value || std::is_same<T, double >::value ||
138
140
std::is_same<T, long double >::value) {
139
141
return std::strtod (value.c_str (), nullptr );
0 commit comments