]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
move.h (forward): Update to N3092.
authorPaolo Carlini <paolo.carlini@oracle.com>
Thu, 5 Aug 2010 07:34:08 +0000 (07:34 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Thu, 5 Aug 2010 07:34:08 +0000 (07:34 +0000)
2010-08-05  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/move.h (forward): Update to N3092.
(identity): Remove (US 92 is NAD).
* include/debug/set.h: Fix move constructor to simply use move.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* include/ext/vstring.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* testsuite/20_util/identity/value.cc: Remove
* testsuite/20_util/identity/requirements/typedefs.cc: Likewise.
* testsuite/20_util/identity/requirements/explicit_instantiation.cc:
Likewise.

From-SVN: r162898

36 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/forward_list.h
libstdc++-v3/include/bits/move.h
libstdc++-v3/include/bits/stl_bvector.h
libstdc++-v3/include/bits/stl_deque.h
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/include/bits/stl_map.h
libstdc++-v3/include/bits/stl_multimap.h
libstdc++-v3/include/bits/stl_multiset.h
libstdc++-v3/include/bits/stl_set.h
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/include/bits/unordered_map.h
libstdc++-v3/include/bits/unordered_set.h
libstdc++-v3/include/debug/deque
libstdc++-v3/include/debug/list
libstdc++-v3/include/debug/map.h
libstdc++-v3/include/debug/multimap.h
libstdc++-v3/include/debug/multiset.h
libstdc++-v3/include/debug/set.h
libstdc++-v3/include/debug/string
libstdc++-v3/include/debug/unordered_map
libstdc++-v3/include/debug/unordered_set
libstdc++-v3/include/debug/vector
libstdc++-v3/include/ext/vstring.h
libstdc++-v3/include/profile/deque
libstdc++-v3/include/profile/list
libstdc++-v3/include/profile/map.h
libstdc++-v3/include/profile/multimap.h
libstdc++-v3/include/profile/multiset.h
libstdc++-v3/include/profile/set.h
libstdc++-v3/include/profile/unordered_map
libstdc++-v3/include/profile/unordered_set
libstdc++-v3/include/profile/vector
libstdc++-v3/testsuite/20_util/identity/requirements/explicit_instantiation.cc [deleted file]
libstdc++-v3/testsuite/20_util/identity/requirements/typedefs.cc [deleted file]
libstdc++-v3/testsuite/20_util/identity/value.cc [deleted file]

index ea4c2ebac9095c8288deeb3162fb3ccc67594dc4..6da10e1c917a721eef6dd599f5df6e9106cdf93c 100644 (file)
@@ -1,3 +1,43 @@
+2010-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/bits/move.h (forward): Update to N3092.
+       (identity): Remove (US 92 is NAD).
+       * include/debug/set.h: Fix move constructor to simply use move.
+       * include/debug/unordered_map: Likewise.
+       * include/debug/multiset.h: Likewise.
+       * include/debug/vector: Likewise.
+       * include/debug/unordered_set: Likewise.
+       * include/debug/deque: Likewise.
+       * include/debug/map.h: Likewise.
+       * include/debug/string: Likewise.
+       * include/debug/list: Likewise.
+       * include/debug/multimap.h: Likewise.
+       * include/profile/set.h: Likewise.
+       * include/profile/unordered_map: Likewise.
+       * include/profile/multiset.h: Likewise.
+       * include/profile/unordered_set: Likewise.
+       * include/profile/vector: Likewise.
+       * include/profile/deque: Likewise.
+       * include/profile/map.h: Likewise.
+       * include/profile/list: Likewise.
+       * include/profile/multimap.h: Likewise.
+       * include/ext/vstring.h: Likewise.
+       * include/bits/stl_list.h: Likewise.
+       * include/bits/stl_map.h: Likewise.
+       * include/bits/stl_set.h: Likewise.
+       * include/bits/forward_list.h: Likewise.
+       * include/bits/stl_multimap.h: Likewise.
+       * include/bits/unordered_map.h: Likewise.
+       * include/bits/stl_vector.h: Likewise.
+       * include/bits/stl_deque.h: Likewise.
+       * include/bits/stl_multiset.h: Likewise.
+       * include/bits/unordered_set.h: Likewise.
+       * include/bits/stl_bvector.h: Likewise.
+       * testsuite/20_util/identity/value.cc: Remove
+       * testsuite/20_util/identity/requirements/typedefs.cc: Likewise.
+       * testsuite/20_util/identity/requirements/explicit_instantiation.cc:
+       Likewise.
+
 2010-07-27  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * acinclude.m4 ([GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS]): Fix
index 3708a62c37d3e441a428f2faead64638059a63f6..4fe029d3b2d91d511bd9a5b254e649e5008a9293 100644 (file)
@@ -452,7 +452,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  @param  al    An allocator object.
        */
       forward_list(forward_list&& __list, const _Alloc& __al)
-      : _Base(std::forward<_Base>(__list), __al)
+      : _Base(std::move(__list), __al)
       { }
 
       /**
@@ -523,7 +523,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  %forward_list.
        */
       forward_list(forward_list&& __list)
-      : _Base(std::forward<_Base>(__list)) { }
+      : _Base(std::move(__list)) { }
 
       /**
        *  @brief  Builds a %forward_list from an initializer_list
index 09b9c85b07ff099a0e472dc7dd42a9071cf85394..d5243d229be0a787b6469bdf144ae23f09ed9ec7 100644 (file)
@@ -50,37 +50,17 @@ _GLIBCXX_END_NAMESPACE
 #include <type_traits> // Brings in std::declval too.
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
-
-  /// identity
-  template<typename _Tp>
-    struct identity
-    {
-      typedef _Tp type;
-    };
-
-  /// forward (as per N2835)
-  /// Forward lvalues as rvalues.
-  template<typename _Tp>
-    inline typename enable_if<!is_lvalue_reference<_Tp>::value, _Tp&&>::type
-    forward(typename std::identity<_Tp>::type& __t)
-    { return static_cast<_Tp&&>(__t); }
-
-  /// Forward rvalues as rvalues.
-  template<typename _Tp>
-    inline typename enable_if<!is_lvalue_reference<_Tp>::value, _Tp&&>::type
-    forward(typename std::identity<_Tp>::type&& __t)
-    { return static_cast<_Tp&&>(__t); }
-
-  // Forward lvalues as lvalues.
-  template<typename _Tp>
-    inline typename enable_if<is_lvalue_reference<_Tp>::value, _Tp>::type
-    forward(typename std::identity<_Tp>::type __t)
-    { return __t; }
-
-  // Prevent forwarding rvalues as const lvalues.
-  template<typename _Tp>
-    inline typename enable_if<is_lvalue_reference<_Tp>::value, _Tp>::type
-    forward(typename std::remove_reference<_Tp>::type&& __t) = delete;
+  
+  /// forward
+  template<typename _Tp, typename _Up>
+    inline typename
+    enable_if<((std::is_convertible<
+               typename std::remove_reference<_Up>::type*,
+               typename std::remove_reference<_Tp>::type*>::value)
+              && (!std::is_lvalue_reference<_Tp>::value
+                  || std::is_lvalue_reference<_Up>::value)), _Tp&&>::type
+    forward(_Up&& __u)
+    { return static_cast<_Tp&&>(__u); }
 
   /**
    *  @brief Move a value.
@@ -109,10 +89,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
 _GLIBCXX_END_NAMESPACE
 
-#define _GLIBCXX_MOVE(_Tp) std::move(_Tp)
+#define _GLIBCXX_MOVE(__val) std::move(__val)
 #define _GLIBCXX_FORWARD(_Tp, __val) std::forward<_Tp>(__val)
 #else
-#define _GLIBCXX_MOVE(_Tp) (_Tp)
+#define _GLIBCXX_MOVE(__val) (__val)
 #define _GLIBCXX_FORWARD(_Tp, __val) (__val)
 #endif
 
index db81761ca7ddf82c8e1d2c01a858d69581f49199..c489b447ca15e46a25857f852c5efd92a60a73b7 100644 (file)
@@ -528,7 +528,7 @@ template<typename _Alloc>
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
     vector(vector&& __x)
-    : _Base(std::forward<_Base>(__x)) { }
+    : _Base(std::move(__x)) { }
 
     vector(initializer_list<bool> __l,
           const allocator_type& __a = allocator_type())
index d3cd73997e9eedfeaedce47540b909a5680b068b..397b6333b5bdf39610bbffe3bef8cf5393d0fd41 100644 (file)
@@ -839,8 +839,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  The newly-created %deque contains the exact contents of @a x.
        *  The contents of @a x are a valid, but unspecified %deque.
        */
-      deque(deque&&  __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      deque(deque&& __x)
+      : _Base(std::move(__x)) { }
 
       /**
        *  @brief  Builds a %deque from an initializer list.
index d6f9255752fe13fde154c476d07870392872ec25..2bbb26fb494dd30ad35e76bf0c4a0faeaadaecb1 100644 (file)
@@ -569,7 +569,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  The contents of @a x are a valid, but unspecified %list.
        */
       list(list&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
 
       /**
        *  @brief  Builds a %list from an initializer_list
index 7f81fab1c642e95271942f5cd1073ae39fcd0b0b..5d6a98b75b259dad6fe178c6eb4ce435f0894877 100644 (file)
@@ -179,7 +179,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  The contents of @a x are a valid, but unspecified %map.
        */
       map(map&& __x)
-      : _M_t(std::forward<_Rep_type>(__x._M_t)) { }
+      : _M_t(std::move(__x._M_t)) { }
 
       /**
        *  @brief  Builds a %map from an initializer_list.
index e5575bc9f722f7cf48733247d6998bfebc6379f7..82a80f27eb4533fd025ecade1dafcef2c20569a7 100644 (file)
@@ -177,7 +177,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  The contents of @a x are a valid, but unspecified %multimap.
        */
       multimap(multimap&& __x)
-      : _M_t(std::forward<_Rep_type>(__x._M_t)) { }
+      : _M_t(std::move(__x._M_t)) { }
 
       /**
        *  @brief  Builds a %multimap from an initializer_list.
index 209e58eb9e80c3058c4ffa9515f134b058c2f35e..cfe849bf79ac520d87c3cd9b2954b7c7dd2feaa0 100644 (file)
@@ -190,7 +190,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  The contents of @a x are a valid, but unspecified %multiset.
        */
       multiset(multiset&& __x)
-      : _M_t(std::forward<_Rep_type>(__x._M_t)) { }
+      : _M_t(std::move(__x._M_t)) { }
 
       /**
        *  @brief  Builds a %multiset from an initializer_list.
index 54321e278ac3ba5037a0cb325c6d0f34973a4f7a..ce5bc6c15f22739e370b31b51246e75f26ff340b 100644 (file)
@@ -197,7 +197,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  The contents of @a x are a valid, but unspecified %set.
        */
       set(set&& __x)
-      : _M_t(std::forward<_Rep_type>(__x._M_t)) { }
+      : _M_t(std::move(__x._M_t)) { }
 
       /**
        *  @brief  Builds a %set from an initializer_list.
index d51578c9e059fe3986c441e2c0a005af7a79acef..147e3f7715befbc2bb99522f4334fd6c157c675f 100644 (file)
@@ -290,7 +290,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  The contents of @a x are a valid, but unspecified %vector.
        */
       vector(vector&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
 
       /**
        *  @brief  Builds a %vector from an initializer list.
index 80b970c8cf5e994eb0e4ec4859bca6c9ce0f1f18..f3a16e0dd01d23880d4200f17be1385c0ed4fbdb 100644 (file)
@@ -85,7 +85,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       __unordered_map(const __unordered_map& __x) = default;
 
       __unordered_map(__unordered_map&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
     };
   
   template<class _Key, class _Tp,
@@ -142,7 +142,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       __unordered_multimap(const __unordered_multimap& __x) = default;
 
       __unordered_multimap(__unordered_multimap&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
     };
 
   template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc,
@@ -253,7 +253,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       unordered_map(const unordered_map& __x) = default;
 
       unordered_map(unordered_map&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
 
       unordered_map(initializer_list<value_type> __l,
                    size_type __n = 10,
@@ -340,7 +340,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       unordered_multimap(const unordered_multimap& __x) = default;
 
       unordered_multimap(unordered_multimap&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
 
       unordered_multimap(initializer_list<value_type> __l,
                         size_type __n = 10,
index 8682f2d723725224f8ee4a006c4b80df1722bb23..f056be57ec0890af475505113842587ce1fa8c83 100644 (file)
@@ -85,7 +85,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       __unordered_set(const __unordered_set& __x) = default;
 
       __unordered_set(__unordered_set&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
     };
 
   template<class _Value,
@@ -140,7 +140,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       __unordered_multiset(const __unordered_multiset& __x) = default;
 
       __unordered_multiset(__unordered_multiset&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
     };
 
   template<class _Value, class _Hash, class _Pred, class _Alloc,
@@ -246,7 +246,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       unordered_set(const unordered_set& __x) = default;
 
       unordered_set(unordered_set&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
 
       unordered_set(initializer_list<value_type> __l,
                    size_type __n = 10,
@@ -330,7 +330,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
       unordered_multiset(const unordered_multiset& __x) = default;
 
       unordered_multiset(unordered_multiset&& __x)
-      : _Base(std::forward<_Base>(__x)) { }
+      : _Base(std::move(__x)) { }
 
       unordered_multiset(initializer_list<value_type> __l,
                         size_type __n = 10,
index 31f708a9c9d5bbb26f845b8f8f53e9f34ef985e1..2b54b7d3e16e5e3d56a99ee20ed3a1af4c8eec3a 100644 (file)
@@ -100,7 +100,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       deque(deque&& __x)
-      : _Base(std::forward<deque>(__x)), _Safe_base()
+      : _Base(std::move(__x)), _Safe_base()
       { this->_M_swap(__x); }
 
       deque(initializer_list<value_type> __l,
index c65ed5829f2464286be27c52cc1e9e0a495751c7..b6be96f00d391a7a0c32bcff4e66f235ff5412b3 100644 (file)
@@ -101,7 +101,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       list(list&& __x)
-      : _Base(std::forward<list>(__x)), _Safe_base()
+      : _Base(std::move(__x)), _Safe_base()
       { this->_M_swap(__x); }
 
       list(initializer_list<value_type> __l,
index 24f5ea6c06c3f50f51ecff14ce782bbb14599650..1254e42257b58f5b0e74414a1f1901a3cdc74b5b 100644 (file)
@@ -92,7 +92,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       map(map&& __x)
-      : _Base(std::forward<map>(__x)), _Safe_base()
+      : _Base(std::move(__x)), _Safe_base()
       { this->_M_swap(__x); }
 
       map(initializer_list<value_type> __l,
index 32a5429040672804b0176ad29b4a09bc9f361aef..bf06f78f536b59c02f14509e3f8c895a42c8905e 100644 (file)
@@ -93,7 +93,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       multimap(multimap&& __x)
-      : _Base(std::forward<multimap>(__x)), _Safe_base()
+      : _Base(std::move(__x)), _Safe_base()
       { this->_M_swap(__x); }
 
       multimap(initializer_list<value_type> __l,
index 9f65ba34b282011a082d59934d401e0b97377530..59cc828ce8e01c9c788f81972b9e5e98ef99d930 100644 (file)
@@ -90,7 +90,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       multiset(multiset&& __x)
-      : _Base(std::forward<multiset>(__x)), _Safe_base()
+      : _Base(std::move(__x)), _Safe_base()
       { this->_M_swap(__x); }
 
       multiset(initializer_list<value_type> __l,
index 2bd3ddfa5dccb698858fea065c93e7d77d23b33e..24cfcea6411275afa2ff7fb99355e18ca820e597 100644 (file)
@@ -90,7 +90,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       set(set&& __x)
-      : _Base(std::forward<set>(__x)), _Safe_base()
+      : _Base(std::move(__x)), _Safe_base()
       { this->_M_swap(__x); }
 
       set(initializer_list<value_type> __l,
index fe31ffb99ed3b2fca97bc17af49318da04eb6fa3..e5152ebd3cdf2a6390266a6a2ff99a5ecf96079c 100644 (file)
@@ -113,7 +113,7 @@ namespace __gnu_debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
     basic_string(basic_string&& __str)
-    : _Base(std::forward<_Base>(__str))
+    : _Base(std::move(__str))
     { }
 
     basic_string(std::initializer_list<_CharT> __l,
@@ -153,7 +153,7 @@ namespace __gnu_debug
     basic_string&
     operator=(basic_string&& __str)
     {
-      *static_cast<_Base*>(this) = std::forward<_Base>(__str);
+      *static_cast<_Base*>(this) = std::move(__str);
       this->_M_invalidate_all();
       return *this;
     }
@@ -376,7 +376,7 @@ namespace __gnu_debug
     basic_string&
     assign(basic_string&& __x)
     {
-      _Base::assign(std::forward<_Base>(__x));
+      _Base::assign(std::move(__x));
       this->_M_invalidate_all();
       return *this;
     }
index e4c9fa213c5a0be5244d7fea149408e31b5bb254..805e42ee75ec3f1fe0154cb391ce1326f657d5d5 100644 (file)
@@ -93,7 +93,7 @@ namespace __debug
       : _Base(__x), _Safe_base() { }
 
       unordered_map(unordered_map&& __x)
-      : _Base(std::forward<unordered_map>(__x)), _Safe_base() { }
+      : _Base(std::move(__x)), _Safe_base() { }
 
       unordered_map(initializer_list<value_type> __l,
                    size_type __n = 10,
@@ -352,7 +352,7 @@ namespace __debug
       : _Base(__x), _Safe_base() { }
 
       unordered_multimap(unordered_multimap&& __x) 
-      : _Base(std::forward<unordered_multimap>(__x)), _Safe_base() { }
+      : _Base(std::move(__x)), _Safe_base() { }
 
       unordered_multimap(initializer_list<value_type> __l,
                         size_type __n = 10,
index 2956bb04fc50eec4719a74ce981db97e29c9cdca..80ca806f5aa5e0217db7ee2aaca3a1c44a6a3244 100644 (file)
@@ -93,7 +93,7 @@ namespace __debug
       : _Base(__x), _Safe_base() { }
 
       unordered_set(unordered_set&& __x) 
-      : _Base(std::forward<unordered_set>(__x)), _Safe_base() { }
+      : _Base(std::move(__x)), _Safe_base() { }
 
       unordered_set(initializer_list<value_type> __l,
                    size_type __n = 10,
@@ -348,7 +348,7 @@ namespace __debug
       : _Base(__x), _Safe_base() { }
 
       unordered_multiset(unordered_multiset&& __x) 
-      : _Base(std::forward<unordered_multiset>(__x)), _Safe_base() { }
+      : _Base(std::move(__x)), _Safe_base() { }
 
       unordered_multiset(initializer_list<value_type> __l,
                         size_type __n = 10,
index c81f956212e77b99f7246ac77c2c956e64c7886e..3d039655c166229614470e26a4b1c55319a4af36 100644 (file)
@@ -108,7 +108,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       vector(vector&& __x)
-      : _Base(std::forward<vector>(__x)), _Safe_base(),
+      : _Base(std::move(__x)), _Safe_base(),
        _M_guaranteed_capacity(this->size())
       {
        this->_M_swap(__x);
index dffd35a19e3de1652dc2d2e8bb7f4365f236e300..fab546dfdf518e4033e88aa8b08710c608f6460f 100644 (file)
@@ -155,7 +155,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
        *  string.
        */
       __versa_string(__versa_string&& __str)
-      : __vstring_base(std::forward<__vstring_base>(__str)) { }
+      : __vstring_base(std::move(__str)) { }
 
       /**
        *  @brief  Construct string from an initializer list.
index 9f8ce70c9dbbdeb0b74957a35010f0f1d3156c05..b404d972f8fca05af5b54f981dc1822b763ff6dc 100644 (file)
@@ -93,7 +93,7 @@ namespace __profile
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       deque(deque&& __x)
-      : _Base(std::forward<deque>(__x))
+      : _Base(std::move(__x))
       { }
 
       deque(initializer_list<value_type> __l,
index e5468c440710bcb5976e99871d7a3e32104372c1..564fc8c16f129b76252730f598b7b2fe36a40070 100644 (file)
@@ -124,7 +124,7 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> >
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       list(list&& __x)
-      : _Base(std::forward<list>(__x))
+      : _Base(std::move(__x))
       { 
         __profcxx_list_construct(this); 
         __profcxx_list_construct2(this); 
index 8a3a8e45c8f5e9c4f8e6b6d4bb4e97c650c87791..3f668af176c5ece40e6511fbce4cf366e983d428 100644 (file)
@@ -94,7 +94,7 @@ namespace __profile
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       map(map&& __x)
-      : _Base(std::forward<map>(__x))
+      : _Base(std::move(__x))
       { }
 
       map(initializer_list<value_type> __l,
index d5627ad1d0a0402b33d18a25130c201b1611ed97..2897614050cbc231f8e94d9b4de2832d10b31ce0 100644 (file)
@@ -84,7 +84,7 @@ namespace __profile
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       multimap(multimap&& __x)
-      : _Base(std::forward<multimap>(__x))
+      : _Base(std::move(__x))
       { }
 
       multimap(initializer_list<value_type> __l,
index 653ba5b465336a27c4d787d6808d2bb4dca4e201..3c113ef88d5bfa4d34592309d4ea9009392ba9af 100644 (file)
@@ -82,7 +82,7 @@ namespace __profile
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       multiset(multiset&& __x)
-      : _Base(std::forward<multiset>(__x))
+      : _Base(std::move(__x))
       { }
 
       multiset(initializer_list<value_type> __l,
index e2e357339dc11111e02d1d9badcf3535d18730e1..42acf72699a9c15f80c82bca8d72ddc94f7733d1 100644 (file)
@@ -82,7 +82,7 @@ namespace __profile
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       set(set&& __x)
-      : _Base(std::forward<set>(__x))
+      : _Base(std::move(__x))
       { }
 
       set(initializer_list<value_type> __l,
index 6e832c807352d5de4a1a72fbc56d83ae53265ec6..203ae97ef8d001beeae294b9a2e8eaf26922a133 100644 (file)
@@ -104,7 +104,7 @@ namespace __profile
       }
 
       unordered_map(unordered_map&& __x)
-      : _Base(std::forward<_Base>(__x)) 
+      : _Base(std::move(__x)) 
       {
         __profcxx_hashtable_construct(this, _Base::bucket_count());
         __profcxx_hashtable_construct2(this);
@@ -339,7 +339,7 @@ namespace __profile
       }
 
       unordered_multimap(unordered_multimap&& __x)
-      : _Base(std::forward<_Base>(__x))
+      : _Base(std::move(__x))
       {
         __profcxx_hashtable_construct(this, _Base::bucket_count());
       }
index 453157cf941a5ccd65e5bca01a405096ca85693d..1a8836a7772fb944e4fe5866e62ceb7b4da5febf 100644 (file)
@@ -103,7 +103,7 @@ namespace __profile
       }
 
       unordered_set(unordered_set&& __x)
-      : _Base(std::forward<_Base>(__x)) 
+      : _Base(std::move(__x)) 
       { 
         __profcxx_hashtable_construct(this, _Base::bucket_count());
         __profcxx_hashtable_construct2(this);
@@ -328,7 +328,7 @@ namespace __profile
       }
 
       unordered_multiset(unordered_multiset&& __x)
-      : _Base(std::forward<_Base>(__x))
+      : _Base(std::move(__x))
       {
         __profcxx_hashtable_construct(this, _Base::bucket_count());
       }
index e6c32a38aec31e81ebfd516322b928ebebc6ca62..1bd4346ec6770a31b1f25c222095814cffb0b0ac 100644 (file)
@@ -137,7 +137,7 @@ namespace __profile
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       vector(vector&& __x)
-      : _Base(std::forward<vector>(__x))
+      : _Base(std::move(__x))
       {
         __profcxx_vector_construct(this, this->capacity());
         __profcxx_vector_construct2(this);
diff --git a/libstdc++-v3/testsuite/20_util/identity/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/identity/requirements/explicit_instantiation.cc
deleted file mode 100644 (file)
index 691f81b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-// { dg-do compile }
-
-// 2007-07-10  Paolo Carlini  <pcarlini@suse.de>
-
-// Copyright (C) 2007, 2009 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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-
-// NB: This file is for testing utility with NO OTHER INCLUDES.
-
-#include <utility>
-
-namespace std
-{
-  typedef short test_type;
-  template struct decay<test_type>;
-}
diff --git a/libstdc++-v3/testsuite/20_util/identity/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/identity/requirements/typedefs.cc
deleted file mode 100644 (file)
index c170818..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-// 2007-07-10  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2007, 2009 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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-// 
-// NB: This file is for testing utility with NO OTHER INCLUDES.
-
-#include <utility>
-
-// { dg-do compile }
-
-void test01()
-{
-  // Check for required typedefs
-  typedef std::identity<int>                  test_type;
-  typedef test_type::type                     type;
-}
diff --git a/libstdc++-v3/testsuite/20_util/identity/value.cc b/libstdc++-v3/testsuite/20_util/identity/value.cc
deleted file mode 100644 (file)
index 80b444b..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-// 2007-07-10  Paolo Carlini  <pcarlini@suse.de>
-//
-// Copyright (C) 2007, 2009 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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <utility>
-#include <testsuite_hooks.h>
-#include <testsuite_tr1.h>
-
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  using std::identity;
-  using std::is_same;
-  using namespace __gnu_test;
-
-  VERIFY( (is_same<identity<int>::type, int>::value) );
-  VERIFY( (is_same<identity<int&>::type, int&>::value) );
-  VERIFY( (is_same<identity<int&&>::type, int&&>::value) );
-  VERIFY( (is_same<identity<int*>::type, int*>::value) );
-  VERIFY( (is_same<identity<ClassType&&>::type, ClassType&&>::value) );
-  VERIFY( (is_same<identity<ClassType>::type, ClassType>::value) );
-  VERIFY( (is_same<identity<int(int)>::type, int(int)>::value) );
-  VERIFY( (is_same<identity<void>::type, void>::value) );
-  VERIFY( (is_same<identity<const void>::type, const void>::value) );  
-}
-
-int main()
-{
-  test01();
-  return 0;
-}