From b3048116861acd5925562223c3c68f36cc47b7d0 Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Thu, 1 Nov 2012 16:32:14 +0000 Subject: [PATCH] Richard Smith: This fixes a problem in std::is_constructible for incomplete types, and those types with a user-defined operator,(). llvm-svn: 167233 --- libcxx/include/type_traits | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libcxx/include/type_traits b/libcxx/include/type_traits index 59b07b3..26c37df 100644 --- a/libcxx/include/type_traits +++ b/libcxx/include/type_traits @@ -1771,8 +1771,10 @@ class _LIBCPP_VISIBLE result_of<_Fn(_A0, _A1, _A2)> // main is_constructible test +template struct __select_2nd { typedef T type; }; + template -decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), true_type()) +typename __select_2nd()...))), true_type>::type __is_constructible_test(_Tp&&, _Args&& ...); template -- 2.7.4