$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: john_at_[hidden]
Date: 2008-04-01 13:53:57
Author: johnmaddock
Date: 2008-04-01 13:53:56 EDT (Tue, 01 Apr 2008)
New Revision: 43988
URL: http://svn.boost.org/trac/boost/changeset/43988
Log:
Changed BOOST_STATIC_ASSERT for GCC to suppress warnings about old C style casts.
Text files modified: 
   trunk/boost/static_assert.hpp |    18 ++++++++++++++----                      
   1 files changed, 14 insertions(+), 4 deletions(-)
Modified: trunk/boost/static_assert.hpp
==============================================================================
--- trunk/boost/static_assert.hpp	(original)
+++ trunk/boost/static_assert.hpp	2008-04-01 13:53:56 EDT (Tue, 01 Apr 2008)
@@ -28,6 +28,16 @@
 #  define BOOST_SA_GCC_WORKAROUND
 #endif
 
+//
+// If the compiler issues warnings about old C style casts,
+// then enable this:
+//
+#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)))
+#  define BOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true)
+#else
+#  define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)
+#endif
+
 #ifdef BOOST_HAS_STATIC_ASSERT
 #  define BOOST_STATIC_ASSERT( B ) static_assert(B, #B)
 #else
@@ -78,14 +88,14 @@
 #elif defined(BOOST_MSVC)
 #define BOOST_STATIC_ASSERT( B ) \
    typedef ::boost::static_assert_test<\
-      sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\
+      sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST ( B ) >)>\
          BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
 #elif defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND)
 // agurt 15/sep/02: a special care is needed to force Intel C++ issue an error 
 // instead of warning in case of failure
 # define BOOST_STATIC_ASSERT( B ) \
     typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
-        [ ::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >::value ]
+        [ ::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >::value ]
 #elif defined(__sgi)
 // special version for SGI MIPSpro compiler
 #define BOOST_STATIC_ASSERT( B ) \
@@ -100,12 +110,12 @@
 #define BOOST_STATIC_ASSERT( B ) \
    BOOST_STATIC_CONSTANT(int, \
      BOOST_JOIN(boost_static_assert_test_, __LINE__) = \
-       sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) )
+       sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >) )
 #else
 // generic version
 #define BOOST_STATIC_ASSERT( B ) \
    typedef ::boost::static_assert_test<\
-      sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\
+      sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\
          BOOST_JOIN(boost_static_assert_typedef_, __LINE__)
 #endif