Author: hhinnant
Date: Thu Jan 27 15:00:00 2011
New Revision: 124429
URL: http://llvm.org/viewvc/llvm-project?rev=124429&view=rev
Log:
Reverted previous fix to is_convertible as it caused more problems than it
fixed. But this reverted fix will only matter for non-clang compilers.
Installed __is_convertible_to for clang.
Modified:
libcxx/trunk/include/type_traits
Modified: libcxx/trunk/include/type_traits
URL:
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=124429&r1=124428&r2=124429&view=diff
==============================================================================
--- libcxx/trunk/include/type_traits (original)
+++ libcxx/trunk/include/type_traits Thu Jan 27 15:00:00 2011
@@ -598,9 +598,22 @@
// is_convertible
+#ifdef __clang__
+
+template <class _T1, class _T2> struct _LIBCPP_VISIBLE is_convertible
+ : public integral_constant<bool, __is_convertible_to(_T1, _T2)> {};
+{
+};
+
+#else // __clang__
+
namespace __is_convertible_imp
{
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+template <class _Tp> char __test(const volatile typename
remove_reference<_Tp>::type&&);
+#else
template <class _Tp> char __test(_Tp);
+#endif
template <class _Tp> __two __test(...);
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp> _Tp&& __source();
@@ -694,6 +707,8 @@
static const size_t __complete_check2 = __is_convertible_check<_T2>::__v;
};
+#endif // __clang__
+
// is_base_of
// (C) Copyright Rani Sharoni 2003.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits