src/str.cc

changeset 79
2425fa6a4f21
parent 75
bf8c57437231
child 82
841562f5a32f
equal deleted inserted replaced
78:e6d7e32e6481 79:2425fa6a4f21
244 long string::to_long (bool* ok, int base) const 244 long string::to_long (bool* ok, int base) const
245 { 245 {
246 errno = 0; 246 errno = 0;
247 char* endptr; 247 char* endptr;
248 long i = strtol (m_string.c_str(), &endptr, base); 248 long i = strtol (m_string.c_str(), &endptr, base);
249 *ok = (errno == 0 && *endptr == '\0'); 249
250 if (ok)
251 *ok = (errno == 0 && *endptr == '\0');
252
250 return i; 253 return i;
251 } 254 }
252 255
253 // ============================================================================= 256 // =============================================================================
254 // 257 //
255 float string::to_float (bool* ok) const 258 float string::to_float (bool* ok) const
256 { 259 {
257 errno = 0; 260 errno = 0;
258 char* endptr; 261 char* endptr;
259 float i = strtof (m_string.c_str(), &endptr); 262 float i = strtof (m_string.c_str(), &endptr);
260 *ok = (errno == 0 && *endptr == '\0'); 263
264 if (ok)
265 *ok = (errno == 0 && *endptr == '\0');
266
261 return i; 267 return i;
262 } 268 }
263 269
264 // ============================================================================= 270 // =============================================================================
265 // 271 //
266 double string::to_double (bool* ok) const 272 double string::to_double (bool* ok) const
267 { 273 {
268 errno = 0; 274 errno = 0;
269 char* endptr; 275 char* endptr;
270 double i = strtod (m_string.c_str(), &endptr); 276 double i = strtod (m_string.c_str(), &endptr);
271 *ok = (errno == 0 && *endptr == '\0'); 277
278 if (ok)
279 *ok = (errno == 0 && *endptr == '\0');
280
272 return i; 281 return i;
273 } 282 }
274 283
275 // ============================================================================= 284 // =============================================================================
276 // 285 //

mercurial