cast integral constant expression to bool to fix some compiler warnings and some compiler bugs.

[SVN r10230]
This commit is contained in:
John Maddock
2001-05-26 10:58:43 +00:00
parent 8b37ed2072
commit 2b67e5a182

View File

@ -58,21 +58,21 @@ template<int x> struct static_assert_test{};
#ifndef BOOST_MSVC #ifndef BOOST_MSVC
#define BOOST_STATIC_ASSERT( B ) \ #define BOOST_STATIC_ASSERT( B ) \
typedef ::boost::static_assert_test<\ typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< ( B ) >)>\ sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\
BOOST_ASSERT_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_ASSERT_JOIN(boost_static_assert_typedef_, __LINE__)
#else #else
// __LINE__ macro broken when -ZI is used see Q199057 // __LINE__ macro broken when -ZI is used see Q199057
// fortunately MSVC ignores duplicate typedef's. // fortunately MSVC ignores duplicate typedef's.
#define BOOST_STATIC_ASSERT( B ) \ #define BOOST_STATIC_ASSERT( B ) \
typedef ::boost::static_assert_test<\ typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< ( B ) >)\ sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\
> boost_static_assert_typedef_ > boost_static_assert_typedef_
#endif #endif
#else #else
// alternative enum based implementation: // alternative enum based implementation:
#define BOOST_STATIC_ASSERT( B ) \ #define BOOST_STATIC_ASSERT( B ) \
enum { BOOST_ASSERT_JOIN(boost_static_assert_enum_, __LINE__) \ enum { BOOST_ASSERT_JOIN(boost_static_assert_enum_, __LINE__) \
= sizeof(::boost::STATIC_ASSERTION_FAILURE< ( B ) >) } = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
#endif #endif
// //