Boost logo

Boost-Commit :

From: daniel_james_at_[hidden]
Date: 2008-01-15 07:00:12


Author: danieljames
Date: 2008-01-15 07:00:11 EST (Tue, 15 Jan 2008)
New Revision: 42791
URL: http://svn.boost.org/trac/boost/changeset/42791

Log:
Workarounds on top of workarounds. Avoid an ETI bug.

Text files modified:
   branches/unordered/trunk/libs/unordered/test/objects/memory.hpp | 20 +++++++++++++++++---
   1 files changed, 17 insertions(+), 3 deletions(-)

Modified: branches/unordered/trunk/libs/unordered/test/objects/memory.hpp
==============================================================================
--- branches/unordered/trunk/libs/unordered/test/objects/memory.hpp (original)
+++ branches/unordered/trunk/libs/unordered/test/objects/memory.hpp 2008-01-15 07:00:11 EST (Tue, 15 Jan 2008)
@@ -11,6 +11,7 @@
 #include <boost/mpl/apply.hpp>
 #include <boost/assert.hpp>
 #include <boost/unordered/detail/allocator.hpp>
+#include <boost/mpl/aux_/config/eti.hpp>
 #include "../helpers/test.hpp"
 
 namespace test
@@ -57,15 +58,28 @@
             }
         };
 
+ template <class Alloc>
+ struct allocator_memory_type_gen {
+ typedef std::map<memory_area, memory_track, memory_area_compare,
+ Alloc> type;
+ };
+
+#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
+ template <>
+ struct allocator_memory_type_gen<int> {
+ typedef std::map<memory_area, memory_track, memory_area_compare> type;
+ };
+#endif
+
         template <class Alloc = std::allocator<int> >
         struct memory_tracker {
             typedef BOOST_DEDUCED_TYPENAME
                 boost::unordered_detail::rebind_wrap<Alloc,
                     std::pair<memory_area const, memory_track> >::type
- allocator;
+ allocator_type;
 
- typedef std::map<memory_area, memory_track, memory_area_compare,
- allocator> allocated_memory_type;
+ typedef BOOST_DEDUCED_TYPENAME allocator_memory_type_gen<allocator_type>::type
+ allocated_memory_type;
 
             allocated_memory_type allocated_memory;
             unsigned int count_allocators;


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