| Home | Libraries | People | FAQ | More

## Chapter 11. The Conversion Library 1.7

### Bjarne Stroustrup

### Dave Abrahams

### Boris Rasin

### Antony Polukhin

Copyright © 2001 Beman Dawes

Copyright © 2014-2020 Antony Polukhin

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)

## Description

The Conversion Library improves program safety and clarity by performing otherwise messy conversions. It includes cast-style function templates designed to complement the C++ Standard's built-in casts.

To reduce coupling, particularly to standard library IOStreams, the Boost Conversion Library is supplied by several headers:

1. The boost/polymorphic_cast.hpp header provides `polymorphic_cast<>` and `polymorphic_downcast<>` to perform safe casting between polymorphic types.
2. The boost/polymorphic_pointer_cast.hpp header provides `polymorphic_pointer_cast<>` and `polymorphic_pointer_downcast<>`
3. The boost/implicit_cast.hpp header provides `implicit_cast<>` to perform implicit casts only (no down-cast, no void*->T*, no U->T if T has only explicit constructors for U).
4. The boost/lexical_cast.hpp header provides `lexical_cast<>` general literal text conversions, such as an `int` represented as a `string`, or vice-versa.