aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2005-01-28 21:00:19 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2005-01-28 21:00:19 +0000
commit7536f1ed9d07d48ca5ca8635e2ed77182df71d52 (patch)
treec06e030f10973c0e9056adc7d71bbc5c38b122d4
parent7d665006a322d2320fbc009c042c40d74229873a (diff)
downloadgcc-7536f1ed9d07d48ca5ca8635e2ed77182df71d52.zip
gcc-7536f1ed9d07d48ca5ca8635e2ed77182df71d52.tar.gz
gcc-7536f1ed9d07d48ca5ca8635e2ed77182df71d52.tar.bz2
type_traits (is_function): Minor consistency tweaks.
2005-01-28 Paolo Carlini <pcarlini@suse.de> * include/tr1/type_traits (is_function): Minor consistency tweaks. From-SVN: r94385
-rw-r--r--libstdc++-v3/ChangeLog4
-rw-r--r--libstdc++-v3/include/tr1/type_traits17
2 files changed, 17 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e823fd8..b41ead4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,7 @@
+2005-01-28 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/type_traits (is_function): Minor consistency tweaks.
+
2005-01-28 Geoffrey Keating <geoffk@apple.com>
* testsuite/lib/libstdc++.exp (libstdc++_init): Search the path
diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits
index 7537229..12609dd 100644
--- a/libstdc++-v3/include/tr1/type_traits
+++ b/libstdc++-v3/include/tr1/type_traits
@@ -406,13 +406,22 @@ namespace tr1
struct is_enum
: public integral_constant<bool, __is_enum_helper<_Tp>::__value> { };
+ template<typename _Tp, bool = is_void<_Tp>::value>
+ struct __is_function_helper
+ {
+ static const bool __value = (__conv_helper<typename
+ add_reference<_Tp>::type, typename
+ add_pointer<_Tp>::type>::__value);
+ };
+
+ template<typename _Tp>
+ struct __is_function_helper<_Tp, true>
+ { static const bool __value = false; };
+
template<typename _Tp>
struct is_function
- : public integral_constant<bool,
- (__conv_helper<typename add_reference<_Tp>::type,
- typename add_pointer<_Tp>::type>::__value)>
+ : public integral_constant<bool, __is_function_helper<_Tp>::__value>
{ };
- _DEFINE_SPEC(0, is_function, void, false)
/// @brief composite type traits [4.5.2].
template<typename _Tp>