[Bug libstdc++/50441] [C++0x] <type_traits> is missing GNU extension types
joseph at codesourcery dot com
gcc-bugzilla@gcc.gnu.org
Sat Sep 17 12:51:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2011-09-17 11:23:43 UTC ---
I have used the term "sui generis extended type" to refer to types such as
__int128 that share many properties of integer types but are not such
types (since intmax_t forms part of the ABI and these types are wider than
intmax_t). I don't know what that means for type traits.
All the C operations should work fine on __int128, and for __float128
where applicable (although it isn't possible to write _Complex __float128
at present since __float128 is not a keyword). ARM __fp16 is more
restricted (in general values are promoted to float before arithmetic) and
IA64 __fpreg is fairly clearly different from normal floating-point types.
See PR 43622 and references therein. C++ support that should be present
for such types, both integer-like and floating-point-like (not __fpreg in
most cases, I suppose) includes typeinfo, numeric_limits (maybe with
associated built-in macros), I/O (see libquadmath which libgfortran can
use, and the associated complications of only linking it in static links
if required) and mathematical functions in general.
More information about the Gcc-bugs
mailing list