This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [v3] C++0x type_traits post-oxford additions
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: Howard Hinnant <hhinnant at apple dot com>
- Cc: libstdc++ <libstdc++ at gcc dot gnu dot org>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 07 May 2007 16:13:54 +0200
- Subject: Re: [v3] C++0x type_traits post-oxford additions
- References: <4639CEBD.8080409@redhat.com> <DAD4A1B6-168F-4FB5-809F-67A3F0D03D30@apple.com>
make_signed/make_unsigned require:
Requires: T is a cv integral type or enumeration, but not a bool type.
I.e. they are not supposed to work with floating point types.
Huh. Now that I look at this, I'm wondering why is_signed/is_unsigned
work on all arithematic types where T(-1) < T(0), and
make_signed/make_unsigned only work on all integral types except bool
plus enumerated types? What's the reason for the inconsistency?
I don't see this in the rationale.
Anyway. I'll go ahead and add in your testcase contribution for decay,
and try to fix up these known fails in the meantime.
best,
-benjamin