diff --git a/include/boost/unordered/detail/allocator_helpers.hpp b/include/boost/unordered/detail/allocator_helpers.hpp index c3c080b2..aac1e55c 100644 --- a/include/boost/unordered/detail/allocator_helpers.hpp +++ b/include/boost/unordered/detail/allocator_helpers.hpp @@ -93,6 +93,7 @@ namespace boost { namespace unordered { namespace detail { struct choice2 : choice3 { typedef char (&type)[2]; }; struct choice1 : choice2 { typedef char (&type)[1]; }; choice1 choose(); + template struct wrap { typedef void* type; }; #define BOOST_DEFAULT_TYPE_TMPLT(tname) \ template \ @@ -100,7 +101,9 @@ namespace boost { namespace unordered { namespace detail { \ template \ static choice1::type test(choice1, \ - BOOST_DEDUCED_TYPENAME X::tname* = 0); \ + BOOST_DEDUCED_TYPENAME wrap< \ + BOOST_DEDUCED_TYPENAME X::tname \ + >::type = 0); \ \ template \ static choice2::type test(choice2, void* = 0); \