Fixes #5707. Fixes some trivial bugs for VC++6

[SVN r73201]
This commit is contained in:
Antony Polukhin
2011-07-17 19:36:06 +00:00
parent ea26a60081
commit 437c57d614
3 changed files with 5 additions and 6 deletions

View File

@ -39,15 +39,13 @@ namespace type_traits_detail {
struct add_rvalue_reference_helper
{ typedef T type; };
#if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
template <typename T>
struct add_rvalue_reference_helper<T, true>
{
#if !defined(BOOST_NO_RVALUE_REFERENCES)
typedef T&& type;
#else
typedef T type;
#endif
};
#endif
template <typename T>
struct add_rvalue_reference_imp

View File

@ -109,7 +109,7 @@ template <> struct is_unsigned_imp<const char> : public true_type{};
template <> struct is_unsigned_imp<volatile char> : public true_type{};
template <> struct is_unsigned_imp<const volatile char> : public true_type{};
#endif
#if defined(WCHAR_MIN) && (WCHAR_MIN == 0)
#if defined(WCHAR_MIN) && (WCHAR_MIN == 0) && !defined(BOOST_NO_INTRINSIC_WCHAR_T)
template <> struct is_unsigned_imp<wchar_t> : public true_type{};
template <> struct is_unsigned_imp<const wchar_t> : public true_type{};
template <> struct is_unsigned_imp<volatile wchar_t> : public true_type{};

View File

@ -27,6 +27,8 @@
namespace boost {
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
namespace detail{
template <class T>
@ -49,7 +51,6 @@ struct rvalue_ref_filter_rem_cv<T&&>
}
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
// convert a type T to a non-cv-qualified type - remove_cv<T>
BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::rvalue_ref_filter_rem_cv<T>::type)