From 4af2cf38f063aa1695fa653b9bb981c7218add47 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,(). git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@167233 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/type_traits | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/type_traits b/include/type_traits index 59b07b326..26c37dfa0 100644 --- a/include/type_traits +++ b/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