Update of /cvsroot/boost/boost/boost/functional/hash
In directory 
sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18614/boost/functional/hash

Modified Files:
        hash.hpp 
Log Message:
Workaround for Visual C++ 7.

Index: hash.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/functional/hash/hash.hpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- hash.hpp    7 May 2006 17:52:38 -0000       1.28
+++ hash.hpp    6 Jun 2006 08:14:23 -0000       1.29
@@ -388,7 +388,7 @@
     }
 
     template <class T> struct hash
-        : public hash_detail::hash_impl<boost::is_pointer<T>::value>
+        : public boost::hash_detail::hash_impl<boost::is_pointer<T>::value>
             ::BOOST_NESTED_TEMPLATE inner<T>
     {
     };
@@ -479,7 +479,7 @@
     };
 #endif
 
-#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
     // On compilers without partial specialization, boost::hash<T>
     // has already been declared to deal with pointers, so just
@@ -487,6 +487,11 @@
 
     namespace hash_detail
     {
+        template <bool IsPointer>
+        struct hash_impl;
+
+#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
+
         template <>
         struct hash_impl<false>
         {
@@ -507,15 +512,12 @@
 #endif
             };
         };
-    }
 
 #else // Visual C++ 6.5
 
     // There's probably a more elegant way to Visual C++ 6.5 to work
     // but I don't know what it is.
 
-    namespace hash_detail
-    {
         template <bool IsConst>
         struct hash_impl_msvc
         {
@@ -560,8 +562,10 @@
             template <class T>
             struct inner : public hash_impl_msvc2<T> {};
         };
+
+#endif // Visual C++ 6.5
     }
-#endif
+#endif  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 }
 
 #endif



_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to