From 6ddddd583f6d0acc949a859c201506ada855e3b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Thu, 12 Jul 2012 07:46:43 +0000 Subject: [PATCH] Ticket #7033: SolarisStudio 12.3 bug: doesn't like intrusive::detail::type_has_rebind::test() declarations [SVN r79437] --- include/boost/intrusive/detail/memory_util.hpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/include/boost/intrusive/detail/memory_util.hpp b/include/boost/intrusive/detail/memory_util.hpp index e0256e4..1a6431b 100644 --- a/include/boost/intrusive/detail/memory_util.hpp +++ b/include/boost/intrusive/detail/memory_util.hpp @@ -182,7 +182,11 @@ template struct type_has_rebind { template + #if !defined (__SUNPRO_CC) static char test(int, typename X::template rebind*); + #else + static char test(int, typename X::rebind*); + #endif template static int test(boost::intrusive::detail::LowPriorityConversion, void*); @@ -194,7 +198,11 @@ template struct type_has_rebind_other { template + #if !defined (__SUNPRO_CC) static char test(int, typename X::template rebind::other*); + #else + static char test(int, typename X::rebind::other*); + #endif template static int test(boost::intrusive::detail::LowPriorityConversion, void*); @@ -205,12 +213,6 @@ struct type_has_rebind_other template struct type_rebind_mode { - template - static char test(int, typename X::template rebind::other*); - - template - static int test(boost::intrusive::detail::LowPriorityConversion, void*); - static const unsigned int rebind = (unsigned int)type_has_rebind::value; static const unsigned int rebind_other = (unsigned int)type_has_rebind_other::value; static const unsigned int mode = rebind + rebind*rebind_other;