Boost
boost
arrow_drop_down
Boost news learn community libraries releases

Next

Chapter 1. Boost.NumericConversion

Fernando Luis Cacciola Carballal

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

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.

It also includes a set of trait classes which describes the compile-time properties of a conversion from a source to a target numeric type. Both arithmetic and user-defined numeric types can be used.

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.

Next