|
Boost : |
Subject: [boost] [dynamic_bitset] proposed fix for ticket #2842
From: Juan Antonio Zaratiegui Vallecillo, a.k.a. Zara (zara_at_[hidden])
Date: 2009-05-04 04:09:11
Dear all,
I have suffered the effects described on ticket #2842:
"dynamic_bitset.hpp fails to compile with g++ (Ubuntu 4.3.3-5ubuntu2)
4.3.3" after upgrading from Ubuntu 8.10 to 9.04.
After some testing, I have found a possible fix, but I would like to
know how may I test thoroughly over as many compiler/versions as
possible before I may suggest its inclusion in trunk.
Fix data:
-- tested under gcc versión 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
-- tested under gcc versión 4.1.2 20080704 (Red Hat 4.1.2-44)
-- Patch data:
<PATCH>
Index: boost/dynamic_bitset/dynamic_bitset.hpp
===================================================================
--- boost/dynamic_bitset/dynamic_bitset.hpp (revision 52752)
+++ boost/dynamic_bitset/dynamic_bitset.hpp (working copy)
@@ -999,11 +999,17 @@
using detail::dynamic_bitset_impl::access_by_blocks;
using detail::dynamic_bitset_impl::value_to_type;
+#if BOOST_WORKAROUND(__GNUC__, == 4) && (__GNUC_MINOR__ >= 3)
+ // NOTE: Explicitly qualificationf of "bits_per_block"
+ // breaks compilation on gcc 4.3.3
+ const bool no_padding = bits_per_block == CHAR_BIT * sizeof(Block);
+#else
// NOTE: Explicitly qualifying "bits_per_block" to workaround
// regressions of gcc 3.4.x
const bool no_padding =
dynamic_bitset<Block, Allocator>::bits_per_block
== CHAR_BIT * sizeof(Block);
+#endif
const bool enough_table_width = table_width >= CHAR_BIT;
</PATCH>
TIA
Zara
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk