webkit
2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
|
Enumerations | |
enum | IntegerRepresentation { INTEGER_REPRESENTATION_UNSIGNED, INTEGER_REPRESENTATION_SIGNED } |
enum | NumericRangeRepresentation { NUMERIC_RANGE_NOT_CONTAINED, NUMERIC_RANGE_CONTAINED } |
enum | RangeConstraint : unsigned char { RANGE_VALID = 0x0, RANGE_UNDERFLOW = 0x1, RANGE_OVERFLOW = 0x2, RANGE_INVALID = RANGE_UNDERFLOW | RANGE_OVERFLOW } |
enum | NumericRepresentation { NUMERIC_INTEGER, NUMERIC_FLOATING, NUMERIC_UNKNOWN } |
enum | ArithmeticPromotionCategory { LEFT_PROMOTION, RIGHT_PROMOTION } |
Functions | |
template<typename Dst , class NaNHandler , typename Src > | |
constexpr Dst | saturated_cast_impl (const Src value, const RangeConstraint constraint) |
constexpr RangeConstraint | GetRangeConstraint (int integer_range_constraint) |
constexpr RangeConstraint | GetRangeConstraint (bool is_in_upper_bound, bool is_in_lower_bound) |
template<typename Dst , typename Src > | |
constexpr RangeConstraint | DstRangeRelationToSrcRange (Src value) |
template<typename T > | |
constexpr bool | HasSignBit (T x) |
template<typename T > | |
constexpr T | BinaryComplement (T x) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer, T >::type | CheckedAdd (T x, T y, RangeConstraint *validity) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer, T >::type | CheckedSub (T x, T y, RangeConstraint *validity) |
return | static_cast< T > (x *y) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed &&(sizeof(T) *2 > sizeof(uintmax_t)), T >::type | CheckedMul (T x, T y, RangeConstraint *validity) |
template<typename T > | |
T | CheckedDiv (T x, T y, RangeConstraint *validity, typename std::enable_if< std::numeric_limits< T >::is_integer, int >::type=0) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&std::numeric_limits< T >::is_signed, T >::type | CheckedMod (T x, T y, RangeConstraint *validity) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed, T >::type | CheckedMod (T x, T y, RangeConstraint *validity) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&std::numeric_limits< T >::is_signed, T >::type | CheckedNeg (T value, RangeConstraint *validity) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed, T >::type | CheckedNeg (T value, RangeConstraint *validity) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&std::numeric_limits< T >::is_signed, T >::type | CheckedAbs (T value, RangeConstraint *validity) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed, T >::type | CheckedAbs (T value, RangeConstraint *validity) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&std::numeric_limits< T >::is_signed, typename UnsignedIntegerForSize< T >::type >::type | CheckedUnsignedAbs (T value) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed, T >::type | CheckedUnsignedAbs (T value) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_iec559, T >::type | CheckedNeg (T value, RangeConstraint *) |
template<typename T > | |
std::enable_if< std::numeric_limits< T >::is_iec559, T >::type | CheckedAbs (T value, RangeConstraint *) |
Variables | |
else * | validity = y >= std::numeric_limits<T>::max() / x ? RANGE_VALID : RANGE_OVERFLOW |
enum base::internal::RangeConstraint : unsigned char |
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type base::internal::CheckedAbs | ( | T | value, |
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type base::internal::CheckedAbs | ( | T | value, |
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_iec559, T>::type base::internal::CheckedAbs | ( | T | value, |
RangeConstraint * | |||
) |
std::enable_if<std::numeric_limits<T>::is_integer, T>::type base::internal::CheckedAdd | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
T base::internal::CheckedDiv | ( | T | x, |
T | y, | ||
RangeConstraint * | validity, | ||
typename std::enable_if< std::numeric_limits< T >::is_integer, int >::type | = 0 |
||
) |
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type base::internal::CheckedMod | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type base::internal::CheckedMod | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed && (sizeof(T) * 2 > sizeof(uintmax_t)), T>::type base::internal::CheckedMul | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type base::internal::CheckedNeg | ( | T | value, |
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type base::internal::CheckedNeg | ( | T | value, |
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_iec559, T>::type base::internal::CheckedNeg | ( | T | value, |
RangeConstraint * | |||
) |
std::enable_if<std::numeric_limits<T>::is_integer, T>::type base::internal::CheckedSub | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
std::enable_if<std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, typename UnsignedIntegerForSize<T>::type>::type base::internal::CheckedUnsignedAbs | ( | T | value | ) |
std::enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type base::internal::CheckedUnsignedAbs | ( | T | value | ) |
constexpr RangeConstraint base::internal::DstRangeRelationToSrcRange | ( | Src | value | ) |
constexpr RangeConstraint base::internal::GetRangeConstraint | ( | int | integer_range_constraint | ) |
|
inline |
constexpr bool base::internal::HasSignBit | ( | T | x | ) |
constexpr Dst base::internal::saturated_cast_impl | ( | const Src | value, |
const RangeConstraint | constraint | ||
) |
else* base::internal::validity = y >= std::numeric_limits<T>::max() / x ? RANGE_VALID : RANGE_OVERFLOW |