Boost logo

Boost :

From: Giovanni Bajo (giovannibajo_at_[hidden])
Date: 2003-12-21 11:14:11

Hello John,

this change:

revision 1.2
date: 2001/02/04 12:59:54; author: johnmaddock; state: Exp; lines: +2 -2
tentative fix for MWCW

made MWCW switch to the enum-based static assert implementation. The
implementation has a well-known problem, of course: if two different files use
a static assertion in the same line (and both are included in the same
translation unit) the code will break. In Spirit, this causes a regression
because it really happens this way.

I tested commenting the !defined(__MWERKS__) on MWCW8.3 under Windows, I ran
the regression tests, and everything looks ok. This change also fixes the bug
in Sprit.

I don't have any MWCW versions so I can't check exactly which version fixed the
bug, but your change is rather old. Maybe any 8.x version is ok. To be
conservative, I propose this patch only for versions >= 8.3. Do you think it's

Giovanni Bajo

Index: static_assert.hpp
RCS file: /cvsroot/boost/boost/boost/static_assert.hpp,v
retrieving revision 1.14
diff -u -w -r1.14 static_assert.hpp
--- static_assert.hpp 4 Oct 2003 11:28:55 -0000 1.14
+++ static_assert.hpp 21 Dec 2003 16:11:36 -0000
@@ -15,6 +15,7 @@

 #include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>

 #ifdef __BORLANDC__
@@ -56,7 +57,8 @@
 // style casts: too many compilers currently have problems with static_cast
 // when used inside integral constant expressions.

 #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
 // __LINE__ macro broken when -ZI is used see Q199057

Boost list run by bdawes at, gregod at, cpdaniel at, john at