This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [v3] ext/type_traits.h



On Sep 15, 2006, at 10:19 AM, Peter Doerfler wrote:


Index: include/tr1/random.tcc
===================================================================
--- include/tr1/random.tcc	(revision 116965)
+++ include/tr1/random.tcc	(working copy)
@@ -88,34 +88,26 @@
       };

     template<typename _ValueT>
-      struct _To_Unsigned_Type
+      struct _To_unsigned_type
       { typedef _ValueT _Type; };

     template<>
-      struct _To_Unsigned_Type<short>
+      struct _To_unsigned_type<short>
       { typedef unsigned short _Type; };

     template<>
-      struct _To_Unsigned_Type<int>
+      struct _To_unsigned_type<int>
       { typedef unsigned int _Type; };

     template<>
-      struct _To_Unsigned_Type<long>
+      struct _To_unsigned_type<long>
       { typedef unsigned long _Type; };

 #ifdef _GLIBCXX_USE_LONG_LONG
     template<>
-      struct _To_Unsigned_Type<long long>
+      struct _To_unsigned_type<long long>
       { typedef unsigned long long _Type; };
 #endif



I think it makes sense to move these out as well. Even if they are only
used in random ATM that seems to be a general concept that could be
useful elsewhere. Following the lead of tr1::type_traits the name
"add_unsigned" might be better, and the corresponding "remove_unsigned"
could be added as well.


Maybe this is even another candidate for Howard's list?

I too have needed these utilities. Fwiw I called them:


to_unsigned<T>::type;
and
to_signed<T>::type;

I note that specializations don't exist for signed/unsigned char. It seems like that would be useful as well. But when you do that, then remove_unsigned<unsigned char>::type -> signed char, doesn't seem to fit as well.

-Howard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]