OSDN Git Service

2012-03-01 Michael Spertus <mike_spertus@symantec.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Mar 2012 05:54:24 +0000 (05:54 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Mar 2012 05:54:24 +0000 (05:54 +0000)
* include/tr2/type_traits (typelist): To __reflection_typelist.
(first, rest, empty): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184773 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/tr2/type_traits

index 7e6afa7..112ac3d 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-01  Michael Spertus  <mike_spertus@symantec.com>
+
+       * include/tr2/type_traits (typelist): To __reflection_typelist.
+       (first, rest, empty): Remove.
+
 2012-03-01  Benjamin Kosnik  <bkoz@redhat.com>
 
        * testsuite/Makefile.am (CLEANFILES): Add *.gdb.
index 9c301b3..eb8c012 100644 (file)
@@ -1,6 +1,6 @@
 // TR2 <type_traits> -*- C++ -*-
 
-// Copyright (C) 2011 Free Software Foundation, Inc.
+// Copyright (C) 2011, 2012 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -53,60 +53,48 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *  Simple typelist. Compile-time list of types.
    */
   template<typename... _Elements>
-    struct typelist;
+    struct __reflection_typelist;
 
   /// Specialization for an empty typelist.
   template<>
-    struct typelist<>
+    struct __reflection_typelist<>
     {
-      typedef std::true_type                   empty;
+      typedef std::true_type                                   empty;
     };
 
   /// Partial specialization.
   template<typename _First, typename... _Rest>
-    struct typelist<_First, _Rest...>
+    struct __reflection_typelist<_First, _Rest...>
     {
-      typedef std::false_type                  empty;
+      typedef std::false_type                                  empty;
 
       struct first
       {
-       typedef _First                          type;
+       typedef _First                                          type;
       };
 
       struct rest
       {
-       typedef typelist<_Rest...>              type;
+       typedef __reflection_typelist<_Rest...>                 type;
       };
     };
 
   /// Sequence abstraction metafunctions for manipulating a typelist.
 
 
-  /// Return the first type in a typelist.
-  template<typename _Tp>
-    struct first : public _Tp::first { };
-
-  /// Return the typelist minus the first type.
-  template<typename _Tp>
-    struct rest : public _Tp::rest { };
-
-  /// Query to see if a typelist is empty.
-  template<typename _Tp>
-    struct empty : public _Tp::empty { };
-
 
   /// Enumerate all the base classes of a class. Form of a typelist.
   template<typename _Tp>
     struct bases
     {
-      typedef typelist<__bases(_Tp)...>        type;
+      typedef __reflection_typelist<__bases(_Tp)...>           type;
     };
 
   /// Enumerate all the direct base classes of a class. Form of a typelist.
   template<typename _Tp>
     struct direct_bases
     {
-      typedef typelist<__direct_bases(_Tp)...>         type;
+      typedef __reflection_typelist<__direct_bases(_Tp)...>    type;
     };
 
   /// @} group metaprogramming