From 1b625ac7abf787546a4f0e9bcf6f6ca2cb5a78b6 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Tue, 6 Jun 2006 17:38:38 +0000 Subject: [PATCH] Merge VC7 workaround from HEAD. [SVN r34197] --- include/boost/functional/hash/hash.hpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/include/boost/functional/hash/hash.hpp b/include/boost/functional/hash/hash.hpp index c7189c5..c1d463e 100644 --- a/include/boost/functional/hash/hash.hpp +++ b/include/boost/functional/hash/hash.hpp @@ -388,7 +388,7 @@ namespace boost } template struct hash - : public hash_detail::hash_impl::value> + : public boost::hash_detail::hash_impl::value> ::BOOST_NESTED_TEMPLATE inner { }; @@ -479,7 +479,7 @@ namespace boost }; #endif -#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300) +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION // On compilers without partial specialization, boost::hash // has already been declared to deal with pointers, so just @@ -487,6 +487,11 @@ namespace boost namespace hash_detail { + template + struct hash_impl; + +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + template <> struct hash_impl { @@ -507,15 +512,12 @@ namespace boost #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 struct hash_impl_msvc { @@ -560,8 +562,10 @@ namespace boost template struct inner : public hash_impl_msvc2 {}; }; + +#endif // Visual C++ 6.5 } -#endif +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION } #endif