$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r62506 - trunk/boost/spirit/home/karma/numeric
From: hartmut.kaiser_at_[hidden]
Date: 2010-06-07 06:12:37
Author: hkaiser
Date: 2010-06-07 06:12:36 EDT (Mon, 07 Jun 2010)
New Revision: 62506
URL: http://svn.boost.org/trac/boost/changeset/62506
Log:
Spirit: fixed ticket #4304
Text files modified: 
   trunk/boost/spirit/home/karma/numeric/uint.hpp |    12 ++++++++++--                            
   1 files changed, 10 insertions(+), 2 deletions(-)
Modified: trunk/boost/spirit/home/karma/numeric/uint.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/numeric/uint.hpp	(original)
+++ trunk/boost/spirit/home/karma/numeric/uint.hpp	2010-06-07 06:12:36 EDT (Mon, 07 Jun 2010)
@@ -12,6 +12,8 @@
 
 #include <limits>
 #include <boost/config.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/not.hpp>
 
 #include <boost/spirit/home/support/common_terminals.hpp>
 #include <boost/spirit/home/support/string_traits.hpp>
@@ -236,7 +238,10 @@
             Radix == 2 || Radix == 8 || Radix == 10 || Radix == 16,
             not_supported_radix, ());
 
-        BOOST_SPIRIT_ASSERT_MSG(!std::numeric_limits<T>::is_signed,
+        BOOST_SPIRIT_ASSERT_MSG( 
+            // the following is a workaround for STLPort, where the simpler
+            // `!std::numeric_limits<T>::is_signed` wouldn't compile
+            mpl::not_<mpl::bool_<std::numeric_limits<T>::is_signed> >::value,
             signed_unsigned_mismatch, ());
 
         // int has a Attribute attached
@@ -299,7 +304,10 @@
             Radix == 2 || Radix == 8 || Radix == 10 || Radix == 16,
             not_supported_radix, ());
 
-        BOOST_SPIRIT_ASSERT_MSG(!std::numeric_limits<T>::is_signed,
+        BOOST_SPIRIT_ASSERT_MSG(
+            // the following is a workaround for STLPort, where the simpler
+            // `!std::numeric_limits<T>::is_signed wouldn't` compile
+            mpl::not_<mpl::bool_<std::numeric_limits<T>::is_signed> >::value,
             signed_unsigned_mismatch, ());
 
         // A uint(1U) which additionally has an associated attribute emits