$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: daniel_james_at_[hidden]
Date: 2008-01-11 09:38:46
Author: danieljames
Date: 2008-01-11 09:38:45 EST (Fri, 11 Jan 2008)
New Revision: 42679
URL: http://svn.boost.org/trac/boost/changeset/42679
Log:
More workarounds for older compilers.
Text files modified: 
   branches/unordered/trunk/libs/unordered/test/exception/insert_exception_tests.cpp |     6 ++++--                                  
   branches/unordered/trunk/libs/unordered/test/objects/exception.hpp                |    16 ++++++++++++++--                        
   branches/unordered/trunk/libs/unordered/test/objects/memory.hpp                   |    11 +++++++----                             
   branches/unordered/trunk/libs/unordered/test/unordered/Jamfile.v2                 |     2 +-                                      
   4 files changed, 26 insertions(+), 9 deletions(-)
Modified: branches/unordered/trunk/libs/unordered/test/exception/insert_exception_tests.cpp
==============================================================================
--- branches/unordered/trunk/libs/unordered/test/exception/insert_exception_tests.cpp	(original)
+++ branches/unordered/trunk/libs/unordered/test/exception/insert_exception_tests.cpp	2008-01-11 09:38:45 EST (Fri, 11 Jan 2008)
@@ -101,13 +101,14 @@
     insert_test_rehash1() : insert_test_base<T>(1000) {}
 
     T init() const {
+        using namespace std;
         typedef BOOST_DEDUCED_TYPENAME T::size_type size_type;
 
         T x;
         x.max_load_factor(0.25);
         size_type bucket_count = x.bucket_count();
         size_type initial_elements = static_cast<size_type>(
-            std::ceil(bucket_count * x.max_load_factor()) - 1);
+            ceil(bucket_count * (double) x.max_load_factor()) - 1);
         UNORDERED_REQUIRE(initial_elements < this->values.size());
         x.insert(this->values.begin(),
                 boost::next(this->values.begin(), initial_elements));
@@ -165,6 +166,7 @@
     insert_test_rehash3() : insert_test_base<T>(1000) {}
 
     T init() const {
+        using namespace std;
         typedef BOOST_DEDUCED_TYPENAME T::size_type size_type;
 
         T x;
@@ -172,7 +174,7 @@
 
         original_bucket_count = x.bucket_count();
         rehash_bucket_count = static_cast<size_type>(
-            std::ceil(original_bucket_count * x.max_load_factor())) - 1;
+            ceil(original_bucket_count * (double) x.max_load_factor())) - 1;
 
         size_type initial_elements = rehash_bucket_count - 5;
 
Modified: branches/unordered/trunk/libs/unordered/test/objects/exception.hpp
==============================================================================
--- branches/unordered/trunk/libs/unordered/test/objects/exception.hpp	(original)
+++ branches/unordered/trunk/libs/unordered/test/objects/exception.hpp	2008-01-11 09:38:45 EST (Fri, 11 Jan 2008)
@@ -184,15 +184,17 @@
             strong.store(x);
             try {
                 ENABLE_EXCEPTIONS;
-                call_ignore_extra_parameters(&Test::run, test_, x, strong);
+                call_ignore_extra_parameters<Test, BOOST_DEDUCED_TYPENAME Test::data_type, BOOST_DEDUCED_TYPENAME Test::strong_type>(&Test::run, test_, x, strong);
             }
             catch(...) {
-                call_ignore_extra_parameters(&Test::check, test_,
+                call_ignore_extra_parameters<Test, BOOST_DEDUCED_TYPENAME Test::data_type const, BOOST_DEDUCED_TYPENAME Test::strong_type const>(&Test::check, test_,
                         constant(x), constant(strong));
                 throw;
             }
         }
     };
+    
+    
 
 #if defined(BOOST_UNORDERED_EXCEPTION_USE_TEST)
     template <class Test>
@@ -626,5 +628,15 @@
 }
 }
 
+// Workaround for ADL deficient compilers
+#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
+namespace test
+{
+    test::exception::object generate(test::exception::object const* x) {
+        return test::exception::generate(x);
+    }
+}
+#endif
+
 #endif
 
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-11 09:38:45 EST (Fri, 11 Jan 2008)
@@ -6,6 +6,8 @@
 #if !defined(BOOST_UNORDERED_TEST_MEMORY_HEADER)
 #define BOOST_UNORDERED_TEST_MEMORY_HEADER
 
+#include <boost/mpl/apply.hpp>
+
 #if defined(BOOST_UNORDERED_EXCEPTION_USE_TEST)
 #define UNORDERED_CHECK(x) BOOST_CHECK(x)
 #define UNORDERED_REQUIRE(x) BOOST_REQUIRE(x)
@@ -64,8 +66,7 @@
         template <class AllocatorHolder = default_allocator_holder>
         struct memory_tracker {
             typedef std::map<memory_area, memory_track, memory_area_compare,
-                BOOST_DEDUCED_TYPENAME AllocatorHolder::
-                template apply<std::pair<memory_area const, memory_track> >::type
+                BOOST_DEDUCED_TYPENAME boost::mpl::apply1<AllocatorHolder, std::pair<memory_area const, memory_track> >::type
             > allocated_memory_type;
 
             allocated_memory_type allocated_memory;
@@ -117,8 +118,10 @@
                 }
                 else {
                     ++count_allocations;
-                    allocated_memory[memory_area(ptr, (char*) ptr + n * size)] =
-                        memory_track(tag);
+                    allocated_memory.insert(
+                        std::pair<memory_area const, memory_track>(
+                            memory_area(ptr, (char*) ptr + n * size),
+                            memory_track(tag)));
                 }
             }
 
Modified: branches/unordered/trunk/libs/unordered/test/unordered/Jamfile.v2
==============================================================================
--- branches/unordered/trunk/libs/unordered/test/unordered/Jamfile.v2	(original)
+++ branches/unordered/trunk/libs/unordered/test/unordered/Jamfile.v2	2008-01-11 09:38:45 EST (Fri, 11 Jan 2008)
@@ -9,7 +9,7 @@
     : requirements
         <toolset>intel-linux:"<cxxflags>-strict_ansi -cxxlib-icc"
         <toolset>gcc:<cxxflags>-Wsign-promo
-        <toolset>msvc:<cxxflags>/W4
+        #<toolset>msvc:<cxxflags>/W4
     ;
 
 test-suite unordered