21 #ifndef XAPIAN_INCLUDED_PARSEINT_H 22 #define XAPIAN_INCLUDED_PARSEINT_H 32 unsigned char digit = *p -
'0';
45 typedef typename std::make_unsigned<T>::type unsigned_type;
46 unsigned_type temp = 0;
49 temp <= unsigned_type(std::numeric_limits<T>::min())) {
53 temp <= unsigned_type(std::numeric_limits<T>::max())) {
std::enable_if< std::is_unsigned< T1 >::value &&std::is_unsigned< T2 >::value &&std::is_unsigned< R >::value, bool >::type add_overflows(T1 a, T2 b, R &res)
Addition with overflow checking.
Arithmetic operations with overflow checks.
bool parse_signed(const char *p, T &res)
std::enable_if< std::is_unsigned< T1 >::value &&std::is_unsigned< T2 >::value &&std::is_unsigned< R >::value, bool >::type mul_overflows(T1 a, T2 b, R &res)
Multiplication with overflow checking.
bool parse_unsigned(const char *p, T &res)