The Boost Numeric Conversion library is a collection of tools to describe and
perform conversions between values of different numeric
types.

The library includes a special alternative for a subset of std::numeric_limits<>, the bounds<>
traits class, which provides a consistent way to obtain the boundary
values for the range
of a numeric type.

A policy-based converter
object which uses conversion_traits
to select an optimized implementation is supplied. Such implementation uses
an optimal range checking code suitable for the source/target combination.

The converter's out-of-range behavior can be customized via an OverflowHandler
policy.

For floating-point to integral conversions, the rounding mode can be selected
via the Float2IntRounder
policy.

A custom low-level conversion routine (for UDTs for instance) can be passed
via a RawConverter
policy.

The optimized automatic range-checking logic can be overridden via a UserRangeChecker
policy.