| Home | Libraries | People | FAQ | More

## Chapter 1. Boost.Convert 2.0

### Vladimir Batov

Copyright © 2009-2014 Vladimir Batov

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

## Rationale

I was using textual configuration files extensively and also was processing and preparing considerable amounts of data in XML. Consequently, I had a need for an extendible library that would provide a uniform interface to convert various data between their internal binary representations and external (predominantly textual) representations.

The `boost::lexical_cast` library (with its orthogonal and extendible design) looked very promising compared to others (see The String Formatters of Manor Farm by H. Sutter for the discussion of alternatives). Unfortunately,

- many deployed user types simply did not meet `boost::lexical_cast` requirements (namely, Default Constructibility);
- failure to convert a user-provided configuration parameter was not that rare or exceptional to justify the hassle and the overhead of exception processing and, consequently, additional flexibility (if, when and how) to handle conversion failures was needed;
- additional conversion-related functionality (formatting and locale support) were needed.

The original hope was to see `boost::lexical_cast` extended to be applicable to a wider range of deployment scenarios. However, after discussions with Kevlin Henney (the `boost::lexical_cast` author) and in the Boost Developers forum it was collectively decided that the desired extensions were not compatible with the original design and the idea of what `boost::lexical_cast` embodied and, therefore, a new component with richer interface and functionality was needed. That decision resulted in the development of Boost.Convert described in this document.

Last revised: May 05, 2016 at 21:23:23 GMT |