| Home | Libraries | People | FAQ | More

## Chapter 1. Boost.NumericConversion

### Fernando Luis Cacciola Carballal

Copyright © 2004-2007 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)

## Overview

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.