$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r73601 - in trunk: boost status
From: antoshkka_at_[hidden]
Date: 2011-08-07 13:38:34
Author: apolukhin
Date: 2011-08-07 13:38:33 EDT (Sun, 07 Aug 2011)
New Revision: 73601
URL: http://svn.boost.org/trac/boost/changeset/73601
Log:
Fixes #5732.
* some fixes for WinCE
* updated explicit failures markup
Text files modified: 
   trunk/boost/lexical_cast.hpp              |    15 ++++++++++-----                         
   trunk/status/explicit-failures-markup.xml |    10 ++++++++++                              
   2 files changed, 20 insertions(+), 5 deletions(-)
Modified: trunk/boost/lexical_cast.hpp
==============================================================================
--- trunk/boost/lexical_cast.hpp	(original)
+++ trunk/boost/lexical_cast.hpp	2011-08-07 13:38:33 EDT (Sun, 07 Aug 2011)
@@ -1156,7 +1156,7 @@
             {   using namespace std;
                 if (put_inf_nan(start,finish,val)) return true;
                 finish = start + swprintf(out,
-#if !defined(__MINGW32__)
+#if !defined(__MINGW32__) && !defined(UNDER_CE)
                                           finish-start,
 #endif
                                           L"%.*g", static_cast<int>(boost::detail::lcast_get_precision<float >()), val );
@@ -1172,11 +1172,12 @@
                  * For mingw-w64, __MINGW64__ is defined, too, when targetting
                  * 64 bits.
                  *
-                 * swprintf realization in MinGW does not conform to the ISO C
+                 * swprintf realization in MinGW and under WinCE does not conform
+                 * to the ISO C
                  * Standard.
                  */
                 finish = start + swprintf(out,
-#if !defined(__MINGW32__)
+#if !defined(__MINGW32__) && !defined(UNDER_CE)
                                           finish-start,
 #endif
                                           L"%.*lg", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
@@ -1187,10 +1188,14 @@
             bool shl_long_double(long double val,wchar_t* out)
             {   using namespace std;
                 if (put_inf_nan(start,finish,val)) return true;
-                finish = start + swprintf(out, finish-start, L"%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double >()), val );
+                finish = start + swprintf(out,
+#if !defined(UNDER_CE)
+                                          finish-start,
+#endif
+                                          L"%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double >()), val );
                 return finish > start;
             }
-    #endif
+#endif
 
 #endif
 
Modified: trunk/status/explicit-failures-markup.xml
==============================================================================
--- trunk/status/explicit-failures-markup.xml	(original)
+++ trunk/status/explicit-failures-markup.xml	2011-08-07 13:38:33 EDT (Sun, 07 Aug 2011)
@@ -632,6 +632,7 @@
                 <toolset name="gcc-4.1*"/>
                 <toolset name="gcc-4.2.0*"/>
                 <toolset name="gcc-mingw-3.4*"/>
+                <toolset name="gcc-mingw-4.*"/>
                 <toolset name="sun-5.7*"/>
                 <toolset name="sun-5.8*"/>
                 <toolset name="sun-5.9*"/>
@@ -647,6 +648,15 @@
                 </note>
             </mark-failure>
         </test>
+        <test name="lexical_cast_float_types_test">
+            <mark-failure>
+                <toolset name="gcc-mingw-4.*"/>
+                <toolset name="vacpp-10.1"/>
+                <note author="Antony Polukhin">
+                    Some compilers and STL realizations convert double and long double types with bigger precision loss than minimal. Such failures are not a lexical_cast, but a compiler fault. 
+                </note>
+            </mark-failure>
+        </test>
     </library>
 
     <!-- crc -->