diff options
| author | Wladimir J. van der Laan <[email protected]> | 2014-05-03 10:20:58 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2014-05-09 16:45:56 +0200 |
| commit | 0d4ea1cf8a349cf59795ac68645afe70e98c6b3a (patch) | |
| tree | 10aaa665a70c821e0f9773c190e47fa330adcc11 /src/util.h | |
| parent | Fix transaction tests (diff) | |
| download | discoin-0d4ea1cf8a349cf59795ac68645afe70e98c6b3a.tar.xz discoin-0d4ea1cf8a349cf59795ac68645afe70e98c6b3a.zip | |
util: add parseint32 function with strict error reporting
None of the current integer parsing functions in util
check whether the result is valid and fits in the range
of the type. This is required for less sloppy error reporting.
Diffstat (limited to 'src/util.h')
| -rw-r--r-- | src/util.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/util.h b/src/util.h index fbd841f7a..fa1e664c9 100644 --- a/src/util.h +++ b/src/util.h @@ -256,6 +256,13 @@ inline int atoi(const std::string& str) return atoi(str.c_str()); } +/** + * Convert string to signed 32-bit integer with strict parse error feedback. + * @returns true if the entire string could be parsed as valid integer, + * false if not the entire string could be parsed or when overflow or underflow occured. + */ +bool ParseInt32(const std::string& str, int32_t *out); + inline int roundint(double d) { return (int)(d > 0 ? d + 0.5 : d - 0.5); |