|
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