From de8fc6b2b146a49b78ec6949c2584fc7de274cfc Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Wed, 14 Aug 2013 21:28:31 +0000 Subject: [PATCH] Relax complete-type check for functions and function pointers to allow void return type. This bug was exposed by Eli Friedman's commit to clang r188324. Anywhere this version of clang ships, this libc++ fix must follow. However this fix is compatible with previous clangs, and so this libc++ doesn't need to wait for this clang. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188413 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/type_traits | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/type_traits b/include/type_traits index 511a05288..73ece1ea2 100644 --- a/include/type_traits +++ b/include/type_traits @@ -2928,12 +2928,22 @@ struct __check_complete<_Rp (*)(_Param...)> { }; +template +struct __check_complete +{ +}; + template struct __check_complete<_Rp (_Param...)> : private __check_complete<_Rp> { }; +template +struct __check_complete +{ +}; + template struct __check_complete<_Rp (_Class::*)(_Param...)> : private __check_complete<_Class>