Richard Smith: This fixes a problem in std::is_constructible for incomplete types, and those types with a user-defined operator,().

llvm-svn: 167233
This commit is contained in:
Howard Hinnant 2012-11-01 16:32:14 +00:00
parent 973aa207e8
commit b304811686
1 changed files with 3 additions and 1 deletions

View File

@ -1771,8 +1771,10 @@ class _LIBCPP_VISIBLE result_of<_Fn(_A0, _A1, _A2)>
// 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>