|  | This patch was generated from the headers installed by MacPorts | 
|  | gcc-4.4 on OS X 10.6.  You can apply it there with | 
|  | `cd /opt/local/include/gcc44/c++ ; sudo patch -p1 <this_patch`, or similar | 
|  | on other operating systems.  Mail cfe-dev if you find other problems in the | 
|  | standard headers. | 
|  |  | 
|  | This patch is offered under the same modified GPLv3 as libstdc++-4.4. | 
|  |  | 
|  | diff -ur a/bits/forward_list.h b/bits/forward_list.h | 
|  | --- a/bits/forward_list.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/forward_list.h	2011-05-02 23:51:33.000000000 -0700 | 
|  | @@ -983,7 +983,7 @@ | 
|  | *  function. | 
|  | */ | 
|  | void | 
|  | -      swap(forward_list&& __list) | 
|  | +      swap(forward_list& __list) | 
|  | { _Node_base::swap(this->_M_impl._M_head, __list._M_impl._M_head); } | 
|  |  | 
|  | /** | 
|  | diff -ur a/bits/move.h b/bits/move.h | 
|  | --- a/bits/move.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/move.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -48,13 +48,35 @@ | 
|  |  | 
|  | template<typename _Tp> | 
|  | inline _Tp&& | 
|  | -    forward(typename std::identity<_Tp>::type&& __t) | 
|  | +    forward(typename std::remove_reference<_Tp>::type& __t) | 
|  | +#ifdef __clang__ | 
|  | +    { return static_cast<_Tp&&>(__t); } | 
|  | +#else | 
|  | { return __t; } | 
|  | +#endif | 
|  | + | 
|  | +  template<typename _Tp> | 
|  | +    inline _Tp&& | 
|  | +    forward(typename std::remove_reference<_Tp>::type&& __t) | 
|  | +    { | 
|  | +#ifdef __clang__ | 
|  | +      static_assert(!std::is_lvalue_reference<_Tp>::value, | 
|  | +                    "Can't instantiate this forward() with an" | 
|  | +                    " lvalue reference type."); | 
|  | +      return static_cast<_Tp&&>(__t); | 
|  | +#else | 
|  | +      return __t; | 
|  | +#endif | 
|  | +    } | 
|  |  | 
|  | template<typename _Tp> | 
|  | inline typename std::remove_reference<_Tp>::type&& | 
|  | move(_Tp&& __t) | 
|  | +#ifdef __clang__ | 
|  | +    { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); } | 
|  | +#else | 
|  | { return __t; } | 
|  | +#endif | 
|  |  | 
|  | _GLIBCXX_END_NAMESPACE | 
|  |  | 
|  | diff -ur a/bits/shared_ptr.h b/bits/shared_ptr.h | 
|  | --- a/bits/shared_ptr.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/shared_ptr.h	2011-03-31 16:40:45.000000000 -0700 | 
|  | @@ -833,7 +833,7 @@ | 
|  | { return _M_refcount._M_get_use_count(); } | 
|  |  | 
|  | void | 
|  | -      swap(__shared_ptr<_Tp, _Lp>&& __other) // never throws | 
|  | +      swap(__shared_ptr<_Tp, _Lp>& __other) // never throws | 
|  | { | 
|  | std::swap(_M_ptr, __other._M_ptr); | 
|  | _M_refcount._M_swap(__other._M_refcount); | 
|  | @@ -943,16 +943,6 @@ | 
|  | swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) | 
|  | { __a.swap(__b); } | 
|  |  | 
|  | -  template<typename _Tp, _Lock_policy _Lp> | 
|  | -    inline void | 
|  | -    swap(__shared_ptr<_Tp, _Lp>&& __a, __shared_ptr<_Tp, _Lp>& __b) | 
|  | -    { __a.swap(__b); } | 
|  | - | 
|  | -  template<typename _Tp, _Lock_policy _Lp> | 
|  | -    inline void | 
|  | -    swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>&& __b) | 
|  | -    { __a.swap(__b); } | 
|  | - | 
|  | // 2.2.3.9 shared_ptr casts | 
|  | /** @warning The seemingly equivalent | 
|  | *           <code>shared_ptr<_Tp, _Lp>(static_cast<_Tp*>(__r.get()))</code> | 
|  | @@ -1372,16 +1362,6 @@ | 
|  | swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) | 
|  | { __a.swap(__b); } | 
|  |  | 
|  | -  template<typename _Tp> | 
|  | -    inline void | 
|  | -    swap(shared_ptr<_Tp>&& __a, shared_ptr<_Tp>& __b) | 
|  | -    { __a.swap(__b); } | 
|  | - | 
|  | -  template<typename _Tp> | 
|  | -    inline void | 
|  | -    swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>&& __b) | 
|  | -    { __a.swap(__b); } | 
|  | - | 
|  | // 20.8.13.2.10 shared_ptr casts. | 
|  | template<typename _Tp, typename _Tp1> | 
|  | inline shared_ptr<_Tp> | 
|  | diff -ur a/bits/stl_bvector.h b/bits/stl_bvector.h | 
|  | --- a/bits/stl_bvector.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_bvector.h	2011-05-02 23:34:46.000000000 -0700 | 
|  | @@ -743,11 +743,7 @@ | 
|  | } | 
|  |  | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -    swap(vector&& __x) | 
|  | -#else | 
|  | swap(vector& __x) | 
|  | -#endif | 
|  | { | 
|  | std::swap(this->_M_impl._M_start, __x._M_impl._M_start); | 
|  | std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); | 
|  | diff -ur a/bits/stl_deque.h b/bits/stl_deque.h | 
|  | --- a/bits/stl_deque.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_deque.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -1395,11 +1395,7 @@ | 
|  | *  std::swap(d1,d2) will feed to this function. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(deque&& __x) | 
|  | -#else | 
|  | swap(deque& __x) | 
|  | -#endif | 
|  | { | 
|  | std::swap(this->_M_impl._M_start, __x._M_impl._M_start); | 
|  | std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); | 
|  | diff -ur a/bits/stl_iterator.h b/bits/stl_iterator.h | 
|  | --- a/bits/stl_iterator.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_iterator.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -913,7 +913,7 @@ | 
|  |  | 
|  | reference | 
|  | operator*() const | 
|  | -      { return *_M_current; } | 
|  | +      { return std::move(*_M_current); } | 
|  |  | 
|  | pointer | 
|  | operator->() const | 
|  | diff -ur a/bits/stl_list.h b/bits/stl_list.h | 
|  | --- a/bits/stl_list.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_list.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -1106,11 +1106,7 @@ | 
|  | *  function. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(list&& __x) | 
|  | -#else | 
|  | swap(list& __x) | 
|  | -#endif | 
|  | { | 
|  | _List_node_base::swap(this->_M_impl._M_node, __x._M_impl._M_node); | 
|  |  | 
|  | @@ -1160,6 +1156,12 @@ | 
|  | } | 
|  | } | 
|  |  | 
|  | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | +      void | 
|  | +      splice(iterator __position, list& __x) | 
|  | +      { splice(__position, std::move(__x)); } | 
|  | +#endif | 
|  | + | 
|  | /** | 
|  | *  @brief  Insert element from another %list. | 
|  | *  @param  position  Iterator referencing the element to insert before. | 
|  | @@ -1187,6 +1189,12 @@ | 
|  | this->_M_transfer(__position, __i, __j); | 
|  | } | 
|  |  | 
|  | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | +      void | 
|  | +      splice(iterator __position, list& __x, iterator __i) | 
|  | +      { splice(__position, std::move(__x), __i); } | 
|  | +#endif | 
|  | + | 
|  | /** | 
|  | *  @brief  Insert range from another %list. | 
|  | *  @param  position  Iterator referencing the element to insert before. | 
|  | @@ -1217,6 +1225,13 @@ | 
|  | } | 
|  | } | 
|  |  | 
|  | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | +      void | 
|  | +      splice(iterator __position, list& __x, iterator __first, | 
|  | +	     iterator __last) | 
|  | +      { splice(__position, std::move(__x), __first, __last); } | 
|  | +#endif | 
|  | + | 
|  | /** | 
|  | *  @brief  Remove all elements equal to value. | 
|  | *  @param  value  The value to remove. | 
|  | @@ -1287,6 +1302,10 @@ | 
|  | void | 
|  | #ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | merge(list&& __x); | 
|  | + | 
|  | +      void | 
|  | +      merge(list& __x) | 
|  | +      { merge(std::move(__x)); } | 
|  | #else | 
|  | merge(list& __x); | 
|  | #endif | 
|  | @@ -1307,6 +1326,11 @@ | 
|  | void | 
|  | #ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | merge(list&&, _StrictWeakOrdering); | 
|  | + | 
|  | +      template<typename _StrictWeakOrdering> | 
|  | +        void | 
|  | +        merge(list& __l, _StrictWeakOrdering __comp) | 
|  | +        { merge(std::move(__l), __comp); } | 
|  | #else | 
|  | merge(list&, _StrictWeakOrdering); | 
|  | #endif | 
|  | diff -ur a/bits/stl_map.h b/bits/stl_map.h | 
|  | --- a/bits/stl_map.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_map.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -608,11 +608,7 @@ | 
|  | *  that std::swap(m1,m2) will feed to this function. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(map&& __x) | 
|  | -#else | 
|  | swap(map& __x) | 
|  | -#endif | 
|  | { _M_t.swap(__x._M_t); } | 
|  |  | 
|  | /** | 
|  | diff -ur a/bits/stl_multimap.h b/bits/stl_multimap.h | 
|  | --- a/bits/stl_multimap.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_multimap.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -544,11 +544,7 @@ | 
|  | *  std::swap(m1,m2) will feed to this function. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(multimap&& __x) | 
|  | -#else | 
|  | swap(multimap& __x) | 
|  | -#endif | 
|  | { _M_t.swap(__x._M_t); } | 
|  |  | 
|  | /** | 
|  | diff -ur a/bits/stl_multiset.h b/bits/stl_multiset.h | 
|  | --- a/bits/stl_multiset.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_multiset.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -376,11 +376,7 @@ | 
|  | *  std::swap(s1,s2) will feed to this function. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(multiset&& __x) | 
|  | -#else | 
|  | swap(multiset& __x) | 
|  | -#endif | 
|  | { _M_t.swap(__x._M_t); } | 
|  |  | 
|  | // insert/erase | 
|  | diff -ur a/bits/stl_pair.h b/bits/stl_pair.h | 
|  | --- a/bits/stl_pair.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_pair.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -84,10 +84,21 @@ | 
|  | : first(__a), second(__b) { } | 
|  |  | 
|  | #ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      template<class _U1, class _U2> | 
|  | +      template<class _U1, class = typename | 
|  | +	       std::enable_if<std::is_convertible<_U1, _T1>::value>::type> | 
|  | +	pair(_U1&& __x, const _T2& __y) | 
|  | +	: first(std::forward<_U1>(__x)), second(__y) { } | 
|  | + | 
|  | +      template<class _U2, class = typename | 
|  | +	       std::enable_if<std::is_convertible<_U2, _T2>::value>::type> | 
|  | +	pair(const _T1& __x, _U2&& __y) | 
|  | +	: first(__x), second(std::forward<_U2>(__y)) { } | 
|  | + | 
|  | +      template<class _U1, class _U2, class = typename | 
|  | +	       std::enable_if<std::is_convertible<_U1, _T1>::value | 
|  | +			      && std::is_convertible<_U2, _T2>::value>::type> | 
|  | pair(_U1&& __x, _U2&& __y) | 
|  | -	: first(std::forward<_U1>(__x)), | 
|  | -	  second(std::forward<_U2>(__y)) { } | 
|  | +	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } | 
|  |  | 
|  | pair(pair&& __p) | 
|  | : first(std::move(__p.first)), | 
|  | @@ -107,11 +118,19 @@ | 
|  | second(std::move(__p.second)) { } | 
|  |  | 
|  | // http://gcc.gnu.org/ml/libstdc++/2007-08/msg00052.html | 
|  | + | 
|  | +#if 0 | 
|  | +      // This constructor is incompatible with libstdc++-4.6, and it | 
|  | +      // interferes with passing NULL pointers to the 2-argument | 
|  | +      // constructors, so we disable it.  map::emplace isn't | 
|  | +      // implemented in libstdc++-4.4 anyway, and that's what this | 
|  | +      // constructor was here for. | 
|  | template<class _U1, class _Arg0, class... _Args> | 
|  | pair(_U1&& __x, _Arg0&& __arg0, _Args&&... __args) | 
|  | : first(std::forward<_U1>(__x)), | 
|  | second(std::forward<_Arg0>(__arg0), | 
|  | std::forward<_Args>(__args)...) { } | 
|  | +#endif | 
|  |  | 
|  | pair& | 
|  | operator=(pair&& __p) | 
|  | @@ -131,7 +150,7 @@ | 
|  | } | 
|  |  | 
|  | void | 
|  | -      swap(pair&& __p) | 
|  | +      swap(pair& __p) | 
|  | { | 
|  | using std::swap; | 
|  | swap(first, __p.first); | 
|  | diff -ur a/bits/stl_queue.h b/bits/stl_queue.h | 
|  | --- a/bits/stl_queue.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_queue.h	2011-05-02 23:36:15.000000000 -0700 | 
|  | @@ -249,7 +249,7 @@ | 
|  |  | 
|  | #ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | void | 
|  | -      swap(queue&& __q) | 
|  | +      swap(queue& __q) | 
|  | { c.swap(__q.c); } | 
|  | #endif | 
|  | }; | 
|  | @@ -550,7 +550,7 @@ | 
|  |  | 
|  | #ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | void | 
|  | -      swap(priority_queue&& __pq) | 
|  | +      swap(priority_queue& __pq) | 
|  | { | 
|  | using std::swap; | 
|  | c.swap(__pq.c); | 
|  | diff -ur a/bits/stl_set.h b/bits/stl_set.h | 
|  | --- a/bits/stl_set.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_set.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -383,11 +383,7 @@ | 
|  | *  std::swap(s1,s2) will feed to this function. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(set&& __x) | 
|  | -#else | 
|  | swap(set& __x) | 
|  | -#endif | 
|  | { _M_t.swap(__x._M_t); } | 
|  |  | 
|  | // insert/erase | 
|  | diff -ur a/bits/stl_stack.h b/bits/stl_stack.h | 
|  | --- a/bits/stl_stack.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_stack.h	2011-05-02 23:36:36.000000000 -0700 | 
|  | @@ -213,7 +213,7 @@ | 
|  |  | 
|  | #ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | void | 
|  | -      swap(stack&& __s) | 
|  | +      swap(stack& __s) | 
|  | { c.swap(__s.c); } | 
|  | #endif | 
|  | }; | 
|  | diff -ur a/bits/stl_tree.h b/bits/stl_tree.h | 
|  | --- a/bits/stl_tree.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_tree.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -675,11 +675,7 @@ | 
|  | { return _M_get_Node_allocator().max_size(); } | 
|  |  | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(_Rb_tree&& __t); | 
|  | -#else | 
|  | swap(_Rb_tree& __t); | 
|  | -#endif | 
|  |  | 
|  | // Insert/erase. | 
|  | pair<iterator, bool> | 
|  | @@ -1104,11 +1100,7 @@ | 
|  | typename _Compare, typename _Alloc> | 
|  | void | 
|  | _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -    swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&& __t) | 
|  | -#else | 
|  | swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t) | 
|  | -#endif | 
|  | { | 
|  | if (_M_root() == 0) | 
|  | { | 
|  | diff -ur a/bits/stl_vector.h b/bits/stl_vector.h | 
|  | --- a/bits/stl_vector.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/stl_vector.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -923,11 +923,7 @@ | 
|  | *  std::swap(v1,v2) will feed to this function. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(vector&& __x) | 
|  | -#else | 
|  | swap(vector& __x) | 
|  | -#endif | 
|  | { | 
|  | std::swap(this->_M_impl._M_start, __x._M_impl._M_start); | 
|  | std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); | 
|  | diff -ur a/bits/unique_ptr.h b/bits/unique_ptr.h | 
|  | --- a/bits/unique_ptr.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/bits/unique_ptr.h	2011-03-31 16:40:45.000000000 -0700 | 
|  | @@ -204,7 +204,7 @@ | 
|  | } | 
|  |  | 
|  | void | 
|  | -      swap(unique_ptr&& __u) | 
|  | +      swap(unique_ptr& __u) | 
|  | { | 
|  | using std::swap; | 
|  | swap(_M_t, __u._M_t); | 
|  | @@ -350,7 +350,7 @@ | 
|  | void reset(_Up) = delete; | 
|  |  | 
|  | void | 
|  | -      swap(unique_ptr&& __u) | 
|  | +      swap(unique_ptr& __u) | 
|  | { | 
|  | using std::swap; | 
|  | swap(_M_t, __u._M_t); | 
|  | @@ -389,18 +389,6 @@ | 
|  | unique_ptr<_Tp, _Tp_Deleter>& __y) | 
|  | { __x.swap(__y); } | 
|  |  | 
|  | -  template<typename _Tp, typename _Tp_Deleter> | 
|  | -    inline void | 
|  | -    swap(unique_ptr<_Tp, _Tp_Deleter>&& __x, | 
|  | -	 unique_ptr<_Tp, _Tp_Deleter>& __y) | 
|  | -    { __x.swap(__y); } | 
|  | - | 
|  | -  template<typename _Tp, typename _Tp_Deleter> | 
|  | -    inline void | 
|  | -    swap(unique_ptr<_Tp, _Tp_Deleter>& __x, | 
|  | -	 unique_ptr<_Tp, _Tp_Deleter>&& __y) | 
|  | -    { __x.swap(__y); } | 
|  | - | 
|  | template<typename _Tp, typename _Tp_Deleter, | 
|  | typename _Up, typename _Up_Deleter> | 
|  | inline bool | 
|  | diff -ur a/exception_ptr.h b/exception_ptr.h | 
|  | --- a/exception_ptr.h	2011-03-15 14:49:08.000000000 -0700 | 
|  | +++ b/exception_ptr.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -140,7 +140,7 @@ | 
|  | friend bool | 
|  | operator==(const exception_ptr&, const exception_ptr&) throw(); | 
|  |  | 
|  | -      const type_info* | 
|  | +      const class type_info* | 
|  | __cxa_exception_type() const throw(); | 
|  | }; | 
|  |  | 
|  | diff -ur a/ext/algorithm b/ext/algorithm | 
|  | --- a/ext/algorithm	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/ext/algorithm	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -423,6 +423,9 @@ | 
|  | __out_last - __out_first); | 
|  | } | 
|  |  | 
|  | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | +  using std::is_heap; | 
|  | +#else | 
|  | /** | 
|  | *  This is an SGI extension. | 
|  | *  @ingroup SGIextensions | 
|  | @@ -462,6 +465,7 @@ | 
|  |  | 
|  | return std::__is_heap(__first, __comp, __last - __first); | 
|  | } | 
|  | +#endif | 
|  |  | 
|  | // is_sorted, a predicated testing whether a range is sorted in | 
|  | // nondescending order.  This is an extension, not part of the C++ | 
|  | diff -ur a/ext/vstring.h b/ext/vstring.h | 
|  | --- a/ext/vstring.h	2011-03-15 14:49:05.000000000 -0700 | 
|  | +++ b/ext/vstring.h	2011-03-29 10:33:39.000000000 -0700 | 
|  | @@ -152,7 +152,7 @@ | 
|  | *  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. | 
|  | @@ -1439,11 +1439,7 @@ | 
|  | *  constant time. | 
|  | */ | 
|  | void | 
|  | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | 
|  | -      swap(__versa_string&& __s) | 
|  | -#else | 
|  | swap(__versa_string& __s) | 
|  | -#endif | 
|  | { this->_M_swap(__s); } | 
|  |  | 
|  | // String operations: | 
|  | diff -ur a/tr1_impl/hashtable b/tr1_impl/hashtable | 
|  | --- a/tr1_impl/hashtable	2011-03-15 14:49:07.000000000 -0700 | 
|  | +++ b/tr1_impl/hashtable	2011-05-02 23:41:55.000000000 -0700 | 
|  | @@ -225,11 +225,7 @@ | 
|  |  | 
|  | ~_Hashtable(); | 
|  |  | 
|  | -#ifdef _GLIBCXX_INCLUDE_AS_CXX0X | 
|  | -      void swap(_Hashtable&&); | 
|  | -#else | 
|  | void swap(_Hashtable&); | 
|  | -#endif | 
|  |  | 
|  | // Basic container operations | 
|  | iterator | 
|  | @@ -732,11 +728,7 @@ | 
|  | void | 
|  | _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, | 
|  | _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: | 
|  | -#ifdef _GLIBCXX_INCLUDE_AS_CXX0X | 
|  | -    swap(_Hashtable&& __x) | 
|  | -#else | 
|  | swap(_Hashtable& __x) | 
|  | -#endif | 
|  | { | 
|  | // The only base class with member variables is hash_code_base.  We | 
|  | // define _Hash_code_base::_M_swap because different specializations | 
|  | diff -ur a/tuple b/tuple | 
|  | --- a/tuple	2011-03-15 14:49:07.000000000 -0700 | 
|  | +++ b/tuple	2011-05-02 23:33:23.000000000 -0700 | 
|  | @@ -77,7 +77,7 @@ | 
|  | _Head&       _M_head()       { return *this; } | 
|  | const _Head& _M_head() const { return *this; } | 
|  |  | 
|  | -      void _M_swap_impl(_Head&&) { /* no-op */ } | 
|  | +      void _M_swap_impl(_Head&) { /* no-op */ } | 
|  | }; | 
|  |  | 
|  | template<std::size_t _Idx, typename _Head> | 
|  | @@ -97,7 +97,7 @@ | 
|  | const _Head& _M_head() const { return _M_head_impl; } | 
|  |  | 
|  | void | 
|  | -      _M_swap_impl(_Head&& __h) | 
|  | +      _M_swap_impl(_Head& __h) | 
|  | { | 
|  | using std::swap; | 
|  | swap(__h, _M_head_impl); | 
|  | @@ -125,7 +125,7 @@ | 
|  | struct _Tuple_impl<_Idx> | 
|  | { | 
|  | protected: | 
|  | -      void _M_swap_impl(_Tuple_impl&&) { /* no-op */ } | 
|  | +      void _M_swap_impl(_Tuple_impl&) { /* no-op */ } | 
|  | }; | 
|  |  | 
|  | /** | 
|  | @@ -214,7 +214,7 @@ | 
|  |  | 
|  | protected: | 
|  | void | 
|  | -      _M_swap_impl(_Tuple_impl&& __in) | 
|  | +      _M_swap_impl(_Tuple_impl& __in) | 
|  | { | 
|  | _Base::_M_swap_impl(__in._M_head()); | 
|  | _Inherited::_M_swap_impl(__in._M_tail()); | 
|  | @@ -292,7 +292,7 @@ | 
|  | } | 
|  |  | 
|  | void | 
|  | -      swap(tuple&& __in) | 
|  | +      swap(tuple& __in) | 
|  | { _Inherited::_M_swap_impl(__in); } | 
|  | }; | 
|  |  | 
|  | @@ -301,7 +301,7 @@ | 
|  | class tuple<> | 
|  | { | 
|  | public: | 
|  | -      void swap(tuple&&) { /* no-op */ } | 
|  | +      void swap(tuple&) { /* no-op */ } | 
|  | }; | 
|  |  | 
|  | /// tuple (2-element), with construction and assignment from a pair. | 
|  | @@ -394,7 +394,7 @@ | 
|  | } | 
|  |  | 
|  | void | 
|  | -      swap(tuple&& __in) | 
|  | +      swap(tuple& __in) | 
|  | { | 
|  | using std::swap; | 
|  | swap(this->_M_head(), __in._M_head()); |