Author: hhinnant
Date: Thu Nov  1 11:32:14 2012
New Revision: 167233

URL: http://llvm.org/viewvc/llvm-project?rev=167233&view=rev
Log:
Richard Smith:  This fixes a problem in std::is_constructible for incomplete 
types, and those types with a user-defined operator,().

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=167233&r1=167232&r2=167233&view=diff
==============================================================================
--- libcxx/trunk/include/type_traits (original)
+++ libcxx/trunk/include/type_traits Thu Nov  1 11:32:14 2012
@@ -1771,8 +1771,10 @@
 
 //      main is_constructible test
 
+template<typename, typename T> struct __select_2nd { typedef T type; };
+
 template <class _Tp, class ..._Args>
-decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), true_type())
+typename __select_2nd<decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...))), 
true_type>::type
 __is_constructible_test(_Tp&&, _Args&& ...);
 
 template <class ..._Args>


_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to