|
template<typename Dst , typename Src > |
constexpr bool | IsValidForType (const CheckedNumeric< Src > value) |
|
template<typename Dst , typename Src > |
constexpr StrictNumeric< Dst > | ValueOrDieForType (const CheckedNumeric< Src > value) |
|
template<typename Dst , typename Src , typename Default > |
constexpr StrictNumeric< Dst > | ValueOrDefaultForType (const CheckedNumeric< Src > value, const Default default_value) |
|
template<typename T > |
constexpr CheckedNumeric< typename UnderlyingType< T >::type > | MakeCheckedNum (const T value) |
|
template<template< typename, typename, typename > class M, typename L , typename R > |
constexpr CheckedNumeric< typename MathWrapper< M, L, R >::type > | CheckMathOp (const L lhs, const R rhs) |
|
template<template< typename, typename, typename > class M, typename L , typename R , typename... Args> |
constexpr CheckedNumeric< typename ResultType< M, L, R, Args... >::type > | CheckMathOp (const L lhs, const R rhs, const Args... args) |
|
template<typename L , typename R > |
L * | operator+ (L *lhs, const StrictNumeric< R > rhs) |
|
template<typename L , typename R > |
L * | operator- (L *lhs, const StrictNumeric< R > rhs) |
|
template<typename T > |
constexpr bool | CheckedAddImpl (T x, T y, T *result) |
|
template<typename T > |
constexpr bool | CheckedSubImpl (T x, T y, T *result) |
|
template<typename T > |
constexpr bool | CheckedMulImpl (T x, T y, T *result) |
|
template<typename T > |
constexpr ClampedNumeric< typename UnderlyingType< T >::type > | MakeClampedNum (const T value) |
|
template<typename T > |
std::ostream & | operator<< (std::ostream &os, const ClampedNumeric< T > &value) |
|
template<template< typename, typename, typename > class M, typename L , typename R > |
constexpr ClampedNumeric< typename MathWrapper< M, L, R >::type > | ClampMathOp (const L lhs, const R rhs) |
|
template<template< typename, typename, typename > class M, typename L , typename R , typename... Args> |
constexpr ClampedNumeric< typename ResultType< M, L, R, Args... >::type > | ClampMathOp (const L lhs, const R rhs, const Args... args) |
|
template<typename T , typename std::enable_if< std::is_integral< T >::value &&std::is_signed< T >::value >::type * = nullptr> |
constexpr T | SaturatedNegWrapper (T value) |
|
template<typename T , typename std::enable_if< std::is_integral< T >::value >::type * = nullptr> |
constexpr T | SaturatedAbsWrapper (T value) |
|
template<typename Dst , typename Src > |
constexpr bool | IsValueInRangeForNumericType (Src value) |
|
template<typename Dst , class CheckHandler = internal::CheckOnFailure, typename Src > |
constexpr Dst | checked_cast (Src value) |
|
template<typename Dst , template< typename > class S, typename Src > |
constexpr Dst | saturated_cast_impl (Src value, RangeCheck constraint) |
|
template<typename Dst , template< typename > class SaturationHandler = SaturationDefaultLimits, typename Src > |
constexpr Dst | saturated_cast (Src value) |
|
template<typename Dst , typename Src > |
constexpr Dst | strict_cast (Src value) |
|
template<typename T > |
constexpr StrictNumeric< typename UnderlyingType< T >::type > | MakeStrictNum (const T value) |
|
template<typename T > |
std::ostream & | operator<< (std::ostream &os, const StrictNumeric< T > &value) |
|
template<typename T , typename std::enable_if< std::is_signed< T >::value >::type * = nullptr> |
constexpr bool | IsValueNegative (T value) |
|
template<typename T > |
constexpr std::make_signed< T >::type | ConditionalNegate (T x, bool is_negative) |
|
template<typename T > |
constexpr std::make_unsigned< T >::type | SafeUnsignedAbs (T value) |
|
constexpr bool | CanDetectCompileTimeConstant () |
|
template<typename T > |
constexpr bool | IsCompileTimeConstant (const T) |
|
template<typename T > |
constexpr bool | MustTreatAsConstexpr (const T v) |
|
template<typename Dst , template< typename > class Bounds = std::numeric_limits, typename Src > |
constexpr RangeCheck | DstRangeRelationToSrcRange (Src value) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (int8_t) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (uint8_t) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (int16_t) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (uint16_t) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (int32_t) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (uint32_t) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (int64_t) |
|
| INTEGER_FOR_DIGITS_AND_SIGN (uint64_t) |
|
template<typename Src > |
constexpr std::make_signed< typenamebase::internal::UnderlyingType< Src >::type >::type | as_signed (const Src value) |
|
template<typename Src > |
constexpr std::make_unsigned< typenamebase::internal::UnderlyingType< Src >::type >::type | as_unsigned (const Src value) |
|
template<typename L , typename R > |
constexpr bool | IsLessImpl (const L lhs, const R rhs, const RangeCheck l_range, const RangeCheck r_range) |
|
template<typename L , typename R > |
constexpr bool | IsLessOrEqualImpl (const L lhs, const R rhs, const RangeCheck l_range, const RangeCheck r_range) |
|
template<typename L , typename R > |
constexpr bool | IsGreaterImpl (const L lhs, const R rhs, const RangeCheck l_range, const RangeCheck r_range) |
|
template<typename L , typename R > |
constexpr bool | IsGreaterOrEqualImpl (const L lhs, const R rhs, const RangeCheck l_range, const RangeCheck r_range) |
|
template<template< typename, typename > class C, typename L , typename R > |
constexpr bool | SafeCompare (const L lhs, const R rhs) |
|
template<typename Dst , typename Src > |
constexpr bool | IsMaxInRangeForNumericType () |
|
template<typename Dst , typename Src > |
constexpr bool | IsMinInRangeForNumericType () |
|
template<typename Dst , typename Src > |
constexpr Dst | CommonMax () |
|
template<typename Dst , typename Src > |
constexpr Dst | CommonMin () |
|
template<typename Dst , typename Src = Dst> |
constexpr Dst | CommonMaxOrMin (bool is_min) |
|
template<typename T , typename std::enable_if< std::is_integral< T >::value >::type * = nullptr> |
constexpr T | NegateWrapper (T value) |
|
template<typename T , typename std::enable_if< std::is_integral< T >::value >::type * = nullptr> |
constexpr std::make_unsigned< T >::type | InvertWrapper (T value) |
|
template<typename T , typename std::enable_if< std::is_integral< T >::value >::type * = nullptr> |
constexpr T | AbsWrapper (T value) |
|