Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r59248 - trunk/boost/mpl
From: agurtovoy_at_[hidden]
Date: 2010-01-24 00:45:37


Author: agurtovoy
Date: 2010-01-24 00:45:36 EST (Sun, 24 Jan 2010)
New Revision: 59248
URL: http://svn.boost.org/trac/boost/changeset/59248

Log:
Fix bitand/bitor conflicts with iso64.h header
Text files modified:
   trunk/boost/mpl/bitand.hpp | 24 +++++++++++++++++++++++-
   trunk/boost/mpl/bitor.hpp | 24 +++++++++++++++++++++++-
   2 files changed, 46 insertions(+), 2 deletions(-)

Modified: trunk/boost/mpl/bitand.hpp
==============================================================================
--- trunk/boost/mpl/bitand.hpp (original)
+++ trunk/boost/mpl/bitand.hpp 2010-01-24 00:45:36 EST (Sun, 24 Jan 2010)
@@ -2,7 +2,7 @@
 #ifndef BOOST_MPL_BITAND_HPP_INCLUDED
 #define BOOST_MPL_BITAND_HPP_INCLUDED
 
-// Copyright Aleksey Gurtovoy 2000-2004
+// Copyright Aleksey Gurtovoy 2000-2009
 // Copyright Jaap Suter 2003
 //
 // Distributed under the Boost Software License, Version 1.0.
@@ -15,9 +15,31 @@
 // $Date$
 // $Revision$
 
+// agurt, 23/jan/10: workaround a conflict with <iso646.h> header's
+// macros, see http://tinyurl.com/ycwdxco; 'defined(bitand)'
+// has to be checked in a separate condition, otherwise GCC complains
+// about 'bitand' being an alternative token
+#if defined(_MSC_VER)
+#ifndef __GCCXML__
+#if defined(bitand)
+# pragma push_macro("bitand")
+# undef bitand
+# define bitand(x)
+#endif
+#endif
+#endif
+
 #define AUX778076_OP_NAME bitand_
 #define AUX778076_OP_PREFIX bitand
 #define AUX778076_OP_TOKEN &
 #include <boost/mpl/aux_/arithmetic_op.hpp>
 
+#if defined(_MSC_VER)
+#ifndef __GCCXML__
+#if defined(bitand)
+# pragma pop_macro("bitand")
+#endif
+#endif
+#endif
+
 #endif // BOOST_MPL_BITAND_HPP_INCLUDED

Modified: trunk/boost/mpl/bitor.hpp
==============================================================================
--- trunk/boost/mpl/bitor.hpp (original)
+++ trunk/boost/mpl/bitor.hpp 2010-01-24 00:45:36 EST (Sun, 24 Jan 2010)
@@ -2,7 +2,7 @@
 #ifndef BOOST_MPL_BITOR_HPP_INCLUDED
 #define BOOST_MPL_BITOR_HPP_INCLUDED
 
-// Copyright Aleksey Gurtovoy 2000-2004
+// Copyright Aleksey Gurtovoy 2000-2009
 // Copyright Jaap Suter 2003
 //
 // Distributed under the Boost Software License, Version 1.0.
@@ -15,9 +15,31 @@
 // $Date$
 // $Revision$
 
+// agurt, 23/jan/10: workaround a conflict with <iso646.h> header's
+// macros, see http://tinyurl.com/ycwdxco; 'defined(bitor)'
+// has to be checked in a separate condition, otherwise GCC complains
+// about 'bitor' being an alternative token
+#if defined(_MSC_VER)
+#ifndef __GCCXML__
+#if defined(bitor)
+# pragma push_macro("bitor")
+# undef bitor
+# define bitor(x)
+#endif
+#endif
+#endif
+
 #define AUX778076_OP_NAME bitor_
 #define AUX778076_OP_PREFIX bitor
 #define AUX778076_OP_TOKEN |
 #include <boost/mpl/aux_/arithmetic_op.hpp>
 
+#if defined(_MSC_VER)
+#ifndef __GCCXML__
+#if defined(bitor)
+# pragma pop_macro("bitor")
+#endif
+#endif
+#endif
+
 #endif // BOOST_MPL_BITOR_HPP_INCLUDED


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk