safe_signed_range<MIN, MAX, PP, EP> and
safe_unsigned_range<MIN, MAX, PP, EP>DescriptionThis type holds a signed or unsigned integer in the closed range
[MIN, MAX]. A safe_signed_range<MIN, MAX, PP, EP> or
safe_unsigned_range<MIN, MAX, PP, EP> can be used
anywhere an arithmetic type is permitted. Any expression which uses either
of these types is guaranteed to return an arithmetically correct value or
to trap in some way.NotationSymbolDescriptionMIN, MAXMinimum and maximum values that the range can
represent.Associated TypesPPPromotion Policy. A type which specifies the result type of
an expression using safe types.EPException Policy. A type containing members which are
called when a correct result cannot be returnedTemplate ParametersParameterRequirementsDescriptionTstd::is_integer<T>The underlying type. Currently only built-in integer
types are supportedMINmust be a non-negative literalThe minimum non-negative integer value that this type may
holdMAXmust be a non-negative literalThe maximum non-negative integer value that this type may
holdMIN <= MAXmust be a valid closed rangePPPromotionPolicy<PP>Default value is boost::numeric::nativeEPException
Policy<EP>Default value is boost::numeric::default_exception_policyModel ofNumericIntegerValid ExpressionsImplements all expressions and only those expressions supported by
the base type T. Note that all these expressions are
constexpr. The result type of such an expression will be
another safe type. The actual type of the result of such an expression
will depend upon the specific promotion policy template parameter.When a binary operand is applied to two instances of A
safe_signed_range<MIN, MAX, PP, EP> or
safe_unsigned_range<MIN, MAX, PP, EP> one of the
following must be true:The promotion policies of the two operands must be the same or
one of them must be voidThe exception policies of the two operands must be the same or
one of them must be voidIf either of the above is not true, a compile error will
result.Example of useHeader#include
<boost/numeric/safe_numerics/safe_range.hpp>