236 lines
16 KiB
HTML
236 lines
16 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
<title>Changes</title>
|
||
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
|
||
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
|
||
<link rel="up" href="../boost_lexical_cast.html" title="Chapter 21. Boost.Lexical_Cast 1.0">
|
||
<link rel="prev" href="frequently_asked_questions.html" title="Frequently Asked Questions">
|
||
<link rel="next" href="performance.html" title="Performance">
|
||
</head>
|
||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||
<table cellpadding="2" width="100%"><tr>
|
||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
|
||
<td align="center"><a href="../../../index.html">Home</a></td>
|
||
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
|
||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||
<td align="center"><a href="../../../more/index.htm">More</a></td>
|
||
</tr></table>
|
||
<hr>
|
||
<div class="spirit-nav">
|
||
<a accesskey="p" href="frequently_asked_questions.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_lexical_cast.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="performance.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
|
||
</div>
|
||
<div class="section">
|
||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||
<a name="boost_lexical_cast.changes"></a><a class="link" href="changes.html" title="Changes">Changes</a>
|
||
</h2></div></div></div>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.56.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
|
||
Added <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">try_lexical_convert</span></code> functions.
|
||
</li></ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.54.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
|
||
Fix some issues with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int128_type</span></code>
|
||
and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint128_type</span></code> conversions. Notify
|
||
user at compile time if the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
|
||
are not specialized for 128bit types and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span></code>
|
||
can not make conversions.
|
||
</li></ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.54.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
Added code to convert <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">int128_type</span></code>
|
||
and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint128_type</span></code> types (requires GCC
|
||
4.7 or higher).
|
||
</li>
|
||
<li class="listitem">
|
||
Conversions to pointers will now fail to compile, instead of throwing
|
||
at runtime.
|
||
</li>
|
||
<li class="listitem">
|
||
Restored ability to get pointers to <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
|
||
function (was broken in 1.53.0).
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.53.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
|
||
Much better input and output streams detection for user defined types.
|
||
</li></ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.52.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
Restored compilation on MSVC-2003 (was broken in 1.51.0).
|
||
</li>
|
||
<li class="listitem">
|
||
Added <code class="computeroutput"><span class="identifier">lexical_cast</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharType</span><span class="special">*</span>
|
||
<span class="identifier">chars</span><span class="special">,</span>
|
||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">)</span></code> function overload.
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.51.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
|
||
Better performance, less memory usage for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">></span></code> and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">character_type</span><span class="special">,</span> <span class="identifier">N</span><span class="special">></span></code> conversions.
|
||
</li></ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.50.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_lexical_cast</span></code> exception is now
|
||
globaly visible and can be catched even if code is compiled with
|
||
-fvisibility=hidden.
|
||
</li>
|
||
<li class="listitem">
|
||
Now it is possible to compile library with disabled exceptions.
|
||
</li>
|
||
<li class="listitem">
|
||
Better performance, less memory usage and bugfixes for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">character_type</span><span class="special">*></span></code>
|
||
conversions.
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.49.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
Restored work with typedefed wchar_t (compilation flag /Zc:wchar_t-
|
||
for Visual Studio).
|
||
</li>
|
||
<li class="listitem">
|
||
Better performance and less memory usage for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">basic_string</span></code>
|
||
conversions.
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.48.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
Added code to work with Inf and NaN on any platform.
|
||
</li>
|
||
<li class="listitem">
|
||
Better performance and less memory usage for conversions to float
|
||
type (and to double type, if <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">)</span></code>).
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.47.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
Optimizations for "C" and other locales without number
|
||
grouping.
|
||
</li>
|
||
<li class="listitem">
|
||
Better performance and less memory usage for unsigned char and signed
|
||
char conversions.
|
||
</li>
|
||
<li class="listitem">
|
||
Better performance and less memory usage for conversions to arithmetic
|
||
types.
|
||
</li>
|
||
<li class="listitem">
|
||
Better performance and less memory usage for conversions from arithmetic
|
||
type to arithmetic type.
|
||
</li>
|
||
<li class="listitem">
|
||
Directly construct Target from Source on some conversions (like conversions
|
||
from string to string, from char array to string, from char to char
|
||
and others).
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.34.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
|
||
Better performance for many combinations of Source and Target types.
|
||
For more details refer to Alexander Nasonovs article <a href="http://accu.org/index.php/journals/1375" target="_top">Fine
|
||
Tuning for lexical_cast, Overload #74, August 2006</a> <a href="http://www.accu.org/var/uploads/journals/overload74.pdf" target="_top">(PDF)</a>.
|
||
</li></ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>boost 1.33.0 :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
Call-by-const reference for the parameters. This requires partial
|
||
specialization of class templates, so it doesn't work for MSVC 6,
|
||
and it uses the original pass by value there.
|
||
</li>
|
||
<li class="listitem">
|
||
The MSVC 6 support is deprecated, and will be removed in a future
|
||
Boost version.
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="bold"><strong>Earlier :</strong></span>
|
||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
|
||
<li class="listitem">
|
||
The previous version of lexical_cast used the default stream precision
|
||
for reading and writing floating-point numbers. For numerics that
|
||
have a corresponding specialization of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>,
|
||
the current version now chooses a precision to match.
|
||
</li>
|
||
<li class="listitem">
|
||
The previous version of lexical_cast did not support conversion to
|
||
or from any wide-character-based types. For compilers with full language
|
||
and library support for wide characters, <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
|
||
now supports conversions from <code class="computeroutput"><span class="keyword">wchar_t</span></code>,
|
||
<code class="computeroutput"><span class="keyword">wchar_t</span> <span class="special">*</span></code>,
|
||
and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code> and to <code class="computeroutput"><span class="keyword">wchar_t</span></code>
|
||
and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code>.
|
||
</li>
|
||
<li class="listitem">
|
||
The previous version of <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
|
||
assumed that the conventional stream extractor operators were sufficient
|
||
for reading values. However, string I/O is asymmetric, with the result
|
||
that spaces play the role of I/O separators rather than string content.
|
||
The current version fixes this error for <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
|
||
and, where supported, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code>:
|
||
<code class="computeroutput"><span class="identifier">lexical_cast</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="string">"Hello, World"</span><span class="special">)</span></code>
|
||
succeeds instead of failing with a <code class="computeroutput"><span class="identifier">bad_lexical_cast</span></code>
|
||
exception.
|
||
</li>
|
||
<li class="listitem">
|
||
The previous version of <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
|
||
allowed unsafe and meaningless conversions to pointers. The current
|
||
version now throws a <code class="computeroutput"><span class="identifier">bad_lexical_cast</span></code>
|
||
for conversions to pointers: <code class="computeroutput"><span class="identifier">lexical_cast</span><span class="special"><</span><span class="keyword">char</span>
|
||
<span class="special">*>(</span><span class="string">"Goodbye,
|
||
World"</span><span class="special">)</span></code> now
|
||
throws an exception instead of causing undefined behavior.
|
||
</li>
|
||
</ul></div>
|
||
</li>
|
||
</ul></div>
|
||
</div>
|
||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||
<td align="left"></td>
|
||
<td align="right"><div class="copyright-footer">Copyright © 2000-2005 Kevlin Henney<br>Copyright © 2006-2010 Alexander Nasonov<br>Copyright © 2011-2021 Antony Polukhin<p>
|
||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||
</p>
|
||
</div></td>
|
||
</tr></table>
|
||
<hr>
|
||
<div class="spirit-nav">
|
||
<a accesskey="p" href="frequently_asked_questions.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_lexical_cast.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="performance.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
|
||
</div>
|
||
</body>
|
||
</html>
|