type_traits (_DEFINE_SPEC_BODY): Remove.

2007-11-18  Paolo Carlini  <pcarlini@suse.de>

	* 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
This commit is contained in:
Paolo Carlini 2007-11-18 18:55:27 +00:00 committed by Paolo Carlini
parent 90b81c3306
commit 3c27955364
2 changed files with 26 additions and 24 deletions

View File

@ -1,3 +1,9 @@
2007-11-18 Paolo Carlini <pcarlini@suse.de>
* 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 <pcarlini@suse.de>
* include/tr1_impl/type_traits (is_reference, is_function,

View File

@ -60,19 +60,16 @@ namespace std
{
namespace tr1
{
#define _DEFINE_SPEC_BODY(_Value) \
: public integral_constant<bool, _Value> { };
#define _DEFINE_SPEC_HELPER(_Spec) \
template<> \
struct _Spec \
: public true_type { };
#define _DEFINE_SPEC_0_HELPER(_Spec, _Value) \
template<> \
struct _Spec \
_DEFINE_SPEC_BODY(_Value)
#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<typename>
struct is_reference
@ -125,20 +122,20 @@ namespace tr1
template<typename>
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<typename>
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<typename _Base, typename _Derived>
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
}
}