From 6cccc200142d9a9d1dbafa0d0a1d8ec2cb0b2c14 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sat, 9 Aug 2008 15:58:52 +0000 Subject: [PATCH] Revert fix for libstdc++/35637, thanks to other/36901. 2008-08-09 Paolo Carlini Revert fix for libstdc++/35637, thanks to other/36901. * include/tr1_impl/type_traits (__is_function_helper): New, uses variadic templates. (is_function): Forward to the latter. (__in_array): Remove. From-SVN: r138906 --- libstdc++-v3/ChangeLog | 8 ++++++ libstdc++-v3/include/tr1_impl/type_traits | 33 ++++++++++------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index af0bee0627c..c96ab5ad519 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2008-08-09 Paolo Carlini + + Revert fix for libstdc++/35637, thanks to other/36901. + * include/tr1_impl/type_traits (__is_function_helper): New, uses + variadic templates. + (is_function): Forward to the latter. + (__in_array): Remove. + 2008-08-09 Paolo Carlini * config/locale/darwin/ctype_members.cc: Include . diff --git a/libstdc++-v3/include/tr1_impl/type_traits b/libstdc++-v3/include/tr1_impl/type_traits index 87633fa9804..3a3d66f1b65 100644 --- a/libstdc++-v3/include/tr1_impl/type_traits +++ b/libstdc++-v3/include/tr1_impl/type_traits @@ -183,30 +183,25 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 { }; template - struct __in_array - : public __sfinae_types - { - private: - template - static __one __test(_Up(*)[1]); - template - static __two __test(...); - - public: - static const bool __value = sizeof(__test<_Tp>(0)) == 1; - }; + struct remove_cv; - /// is_abstract - template - struct is_abstract; + template + struct __is_function_helper + : public false_type { }; + + template + struct __is_function_helper<_Res(_ArgTypes...)> + : public true_type { }; + + template + struct __is_function_helper<_Res(_ArgTypes......)> + : public true_type { }; /// is_function template struct is_function - : public integral_constant::__value - || is_abstract<_Tp>::value - || is_reference<_Tp>::value - || is_void<_Tp>::value)> + : public integral_constant::type>::value)> { }; /// composite type traits [4.5.2].