summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/InputUtil.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/InputUtil.h')
-rw-r--r--cpp/include/IceUtil/InputUtil.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/cpp/include/IceUtil/InputUtil.h b/cpp/include/IceUtil/InputUtil.h
index 9f9f47a80fb..442206c2e5f 100644
--- a/cpp/include/IceUtil/InputUtil.h
+++ b/cpp/include/IceUtil/InputUtil.h
@@ -30,7 +30,46 @@ namespace IceUtil
# error "Unsupported operating system or platform!"
#endif
+//
+// strToInt64() is drop-in replacement for UNIX strtoll()
+//
ICE_UTIL_API Int64 strToInt64(const char*, char**, int);
+
+//
+// stringToInt64 converts a string into a signed 64-bit integer.
+//
+// bool stringToInt64(const std::string& stringToParse, Int64& result, std::string::size_type& pos);
+//
+// Semantics:
+//
+// - Ignore leading and trailing whitespace
+//
+// - If the string starts with '0', parse as octal
+//
+// - If the string starts with "0x" or "0X", parse as hexadecimal
+//
+// - Otherwise, parse as decimal
+//
+// - return value == true indicates a successful conversion and result contains the converted value
+//
+// - if pos == string::npos, there are no trailing non-whitespace characters following the converted string
+//
+// - if pos != string::npos, there are trailing non-whitespace characters following the converted string;
+// pos indicates the first such character
+//
+// - return value == false indicates an unsuccessful conversion:
+//
+// - result == 0 indicates that no digits were available for conversion
+//
+// - result == INT64MIN or result == INT64MAX indicate underflow or overflow.
+//
+// - if pos == string::npos, the string did not contain trailing non-whitespace characters
+//
+// - if pos != string::npos, the string contained trailing non-whitespace characters following the
+// digits and pos indicates the first such character. (Note that all digits up to the first
+// non-digit, non-whitespace character are consumed, regardless of how far into the digit string
+// an overflow is detected.)
+//
ICE_UTIL_API bool stringToInt64(const std::string&, Int64&, std::string::size_type&);
}