From 3c279553647c683018e777eaf6e95f5140bc3425 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sun, 18 Nov 2007 18:55:27 +0000 Subject: [PATCH] type_traits (_DEFINE_SPEC_BODY): Remove. 2007-11-18 Paolo Carlini * include/tr1/type_traits (_DEFINE_SPEC_BODY): Remove. (_DEFINE_SPEC_0_HELPER): Rename to _DEFINE_SPEC_HELPER. (_DEFINE_SPEC): Simplify; adjust uses. From-SVN: r130273 --- libstdc++-v3/ChangeLog | 6 ++++ libstdc++-v3/include/tr1/type_traits | 44 +++++++++++++--------------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index da1204de618..0b653805253 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2007-11-18 Paolo Carlini + + * include/tr1/type_traits (_DEFINE_SPEC_BODY): Remove. + (_DEFINE_SPEC_0_HELPER): Rename to _DEFINE_SPEC_HELPER. + (_DEFINE_SPEC): Simplify; adjust uses. + 2007-11-18 Paolo Carlini * include/tr1_impl/type_traits (is_reference, is_function, diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits index c8376ad02aa..4533ee5dc6c 100644 --- a/libstdc++-v3/include/tr1/type_traits +++ b/libstdc++-v3/include/tr1/type_traits @@ -60,19 +60,16 @@ namespace std { namespace tr1 { -#define _DEFINE_SPEC_BODY(_Value) \ - : public integral_constant { }; - -#define _DEFINE_SPEC_0_HELPER(_Spec, _Value) \ - template<> \ - struct _Spec \ - _DEFINE_SPEC_BODY(_Value) +#define _DEFINE_SPEC_HELPER(_Spec) \ + template<> \ + struct _Spec \ + : public true_type { }; -#define _DEFINE_SPEC(_Order, _Trait, _Type, _Value) \ - _DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type>, _Value) \ - _DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type const>, _Value) \ - _DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type volatile>, _Value) \ - _DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type const volatile>, _Value) +#define _DEFINE_SPEC(_Trait, _Type) \ + _DEFINE_SPEC_HELPER(_Trait<_Type>) \ + _DEFINE_SPEC_HELPER(_Trait<_Type const>) \ + _DEFINE_SPEC_HELPER(_Trait<_Type volatile>) \ + _DEFINE_SPEC_HELPER(_Trait<_Type const volatile>) template struct is_reference @@ -125,20 +122,20 @@ namespace tr1 template struct is_signed : public false_type { }; - _DEFINE_SPEC(0, is_signed, signed char, true) - _DEFINE_SPEC(0, is_signed, short, true) - _DEFINE_SPEC(0, is_signed, int, true) - _DEFINE_SPEC(0, is_signed, long, true) - _DEFINE_SPEC(0, is_signed, long long, true) + _DEFINE_SPEC(is_signed, signed char) + _DEFINE_SPEC(is_signed, short) + _DEFINE_SPEC(is_signed, int) + _DEFINE_SPEC(is_signed, long) + _DEFINE_SPEC(is_signed, long long) template struct is_unsigned : public false_type { }; - _DEFINE_SPEC(0, is_unsigned, unsigned char, true) - _DEFINE_SPEC(0, is_unsigned, unsigned short, true) - _DEFINE_SPEC(0, is_unsigned, unsigned int, true) - _DEFINE_SPEC(0, is_unsigned, unsigned long, true) - _DEFINE_SPEC(0, is_unsigned, unsigned long long, true) + _DEFINE_SPEC(is_unsigned, unsigned char) + _DEFINE_SPEC(is_unsigned, unsigned short) + _DEFINE_SPEC(is_unsigned, unsigned int) + _DEFINE_SPEC(is_unsigned, unsigned long) + _DEFINE_SPEC(is_unsigned, unsigned long long) template struct __is_base_of_helper @@ -244,9 +241,8 @@ namespace tr1 }; }; -#undef _DEFINE_SPEC_0_HELPER +#undef _DEFINE_SPEC_HELPER #undef _DEFINE_SPEC -#undef _DEFINE_SPEC_BODY } } -- 2.30.2