From 246eb897c921e1aee45361d7c10c6fd274cc7f74 Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Tue, 13 Jun 2017 14:34:58 +0000 Subject: Fix bug 33389 - __is_transparent check requires too much git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@305292 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/__functional_base | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'include/__functional_base') diff --git a/include/__functional_base b/include/__functional_base index 0d2c2fc65..79017fe75 100644 --- a/include/__functional_base +++ b/include/__functional_base @@ -548,16 +548,13 @@ template void cref(const _Tp&&) = delete; #endif #if _LIBCPP_STD_VER > 11 -template -struct __is_transparent -{ -private: - struct __two {char __lx; char __lxx;}; - template static __two __test(...); - template static char __test(typename _Up::is_transparent* = 0); -public: - static const bool value = sizeof(__test<_Tp1>(0)) == 1; -}; +template +struct __is_transparent : false_type {}; + +template +struct __is_transparent<_Tp, _Up, + typename __void_t::type> + : true_type {}; #endif // allocator_arg_t -- cgit v1.2.3