diff --git a/include/boost/functional/hash/hash.hpp b/include/boost/functional/hash/hash.hpp index 1ee6bf9..b77264e 100644 --- a/include/boost/functional/hash/hash.hpp +++ b/include/boost/functional/hash/hash.hpp @@ -24,6 +24,10 @@ #include #include +#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) +#include +#endif + namespace boost { #if defined(__BORLANDC__) @@ -37,12 +41,7 @@ namespace boost std::size_t hash_value(long); std::size_t hash_value(unsigned long); -// Hopefully, I'll be able to remove this workaround soon. -#if BOOST_WORKAROUND(__GNUC__, == 4) - template std::size_t hash_value(T*); -#else template std::size_t hash_value(T* const&); -#endif #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) template< class T, unsigned N > @@ -103,11 +102,7 @@ namespace boost } // Implementation by Alberto Barbati and Dave Harris. -#if BOOST_WORKAROUND(__GNUC__, == 4) - template std::size_t hash_value(T* v) -#else template std::size_t hash_value(T* const& v) -#endif { std::size_t x = static_cast( reinterpret_cast(v)); @@ -171,7 +166,7 @@ namespace boost ::BOOST_NESTED_TEMPLATE inner { }; -#endif +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING } #if defined(BOOST_MSVC) && BOOST_MSVC < 1300 @@ -332,3 +327,4 @@ namespace boost } #endif +