Unordered: More portability changes.

[SVN r74122]
This commit is contained in:
Daniel James
2011-08-29 11:10:09 +00:00
parent 155077cba0
commit 395c744d6f
4 changed files with 14 additions and 15 deletions

View File

@ -20,6 +20,7 @@
#include <boost/utility/enable_if.hpp> #include <boost/utility/enable_if.hpp>
#include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/cat.hpp>
#include <boost/limits.hpp> #include <boost/limits.hpp>
#include <boost/type_traits/add_lvalue_reference.hpp>
#if (defined(BOOST_NO_STD_ALLOCATOR) || defined(BOOST_DINKUMWARE_STDLIB)) \ #if (defined(BOOST_NO_STD_ALLOCATOR) || defined(BOOST_DINKUMWARE_STDLIB)) \
&& !defined(__BORLANDC__) && !defined(__BORLANDC__)
@ -83,7 +84,8 @@ namespace boost { namespace unordered { namespace detail {
}; };
# endif # endif
template <typename T> T& make(); template <typename T> BOOST_DEDUCED_TYPENAME
boost::add_lvalue_reference<T>::type make();
struct choice9 { typedef char (&type)[9]; }; struct choice9 { typedef char (&type)[9]; };
struct choice8 : choice9 { typedef char (&type)[8]; }; struct choice8 : choice9 { typedef char (&type)[8]; };
struct choice7 : choice8 { typedef char (&type)[7]; }; struct choice7 : choice8 { typedef char (&type)[7]; };

View File

@ -668,10 +668,10 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1)
class T, \ class T, \
BOOST_UNORDERED_TEMPLATE_ARGS(z, num_params) \ BOOST_UNORDERED_TEMPLATE_ARGS(z, num_params) \
> \ > \
inline void construct_impl( \ inline BOOST_DEDUCED_TYPENAME \
BOOST_DEDUCED_TYPENAME \ boost::disable_if<emulated_pair_constructor<T> >::type \
boost::disable_if<emulated_pair_constructor<T>, void*>::type \ construct_impl( \
address, \ void* address, \
BOOST_UNORDERED_FUNCTION_PARAMS(z, num_params) \ BOOST_UNORDERED_FUNCTION_PARAMS(z, num_params) \
) \ ) \
{ \ { \
@ -686,11 +686,12 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1)
template <class T, class Key, \ template <class T, class Key, \
BOOST_UNORDERED_TEMPLATE_ARGS(z, num_params) \ BOOST_UNORDERED_TEMPLATE_ARGS(z, num_params) \
> \ > \
inline void construct_impl( \ inline BOOST_DEDUCED_TYPENAME \
BOOST_DEDUCED_TYPENAME \ boost::enable_if<emulated_pair_constructor<T> >::type \
boost::enable_if<emulated_pair_constructor<T>, void*>::type \ construct_impl( \
address, \ void* address, \
Key const& k, BOOST_UNORDERED_FUNCTION_PARAMS(z, num_params)) \ BOOST_FWD_REF(Key) k, \
BOOST_UNORDERED_FUNCTION_PARAMS(z, num_params)) \
{ \ { \
new(address) T(k, \ new(address) T(k, \
BOOST_DEDUCED_TYPENAME \ BOOST_DEDUCED_TYPENAME \

View File

@ -165,10 +165,6 @@ namespace detail {
} }
#endif #endif
choice1::type is_key_test(key_type const&);
template <typename T>
choice2::type is_key_test(T const&);
#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE) #if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
#define BOOST_UNORDERED_KEY_FROM_TUPLE(namespace_) \ #define BOOST_UNORDERED_KEY_FROM_TUPLE(namespace_) \

View File

@ -86,4 +86,4 @@ int main()
test_simple_allocator<test::object>(); test_simple_allocator<test::object>();
return boost::report_errors(); return boost::report_errors();
} }