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