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 // |