]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
string (basic_string<>::basic_string(basic_string&&), [...]): Add.
authorPaolo Carlini <paolo.carlini@oracle.com>
Sun, 10 Jan 2010 16:15:58 +0000 (16:15 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sun, 10 Jan 2010 16:15:58 +0000 (16:15 +0000)
2010-01-10  Paolo Carlini  <paolo.carlini@oracle.com>

* include/debug/string (basic_string<>::basic_string(basic_string&&),
operator=(basic_string&&), assign(basic_string&&)): Add.

* include/debug/string: Fully qualify initializer_list with std; fix
_Allocator misspellings as _Alloc.

From-SVN: r155790

libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/string

index 30b09e17e8e7c4700bfc0c496dc09f8876e79098..e136e64e2a24965bd9c17160395b92cfd1909102 100644 (file)
@@ -1,3 +1,11 @@
+2010-01-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/debug/string (basic_string<>::basic_string(basic_string&&),
+       operator=(basic_string&&), assign(basic_string&&)): Add.
+
+       * include/debug/string: Fully qualify initializer_list with std; fix
+       _Allocator misspellings as _Alloc.
+
 2010-01-10  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/bits/basic_string.h (basic_string<>::
index 607d961171e01e6c6528bcf4255b1c7297246bac..160488e989bf5261e7b303b9f53d78290c5b5ee5 100644 (file)
@@ -112,7 +112,12 @@ namespace __gnu_debug
       { }
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
-    basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
+    basic_string(basic_string&& __str)
+    : _Base(std::forward<_Base>(__str))
+    { }
+
+    basic_string(std::initializer_list<_CharT> __l,
+                const _Allocator& __a = _Allocator())
     : _Base(__l, __a)
     { }
 #endif // __GXX_EXPERIMENTAL_CXX0X__
@@ -146,7 +151,15 @@ namespace __gnu_debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
     basic_string&
-    operator=(initializer_list<_CharT> __l)
+    operator=(basic_string&& __str)
+    {
+      *static_cast<_Base*>(this) = std::forward<_Base>(__str);
+      this->_M_invalidate_all();
+      return *this;
+    }
+
+    basic_string&
+    operator=(std::initializer_list<_CharT> __l)
     {
       *static_cast<_Base*>(this) = __l;
       this->_M_invalidate_all();
@@ -277,7 +290,7 @@ namespace __gnu_debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
     basic_string&
-    operator+=(initializer_list<_CharT> __l)
+    operator+=(std::initializer_list<_CharT> __l)
     {
       _M_base() += __l;
       this->_M_invalidate_all();
@@ -354,6 +367,16 @@ namespace __gnu_debug
       return *this;
     }
 
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+    basic_string&
+    assign(basic_string&& __x)
+    {
+      _Base::assign(std::forward<_Base>(__x));
+      this->_M_invalidate_all();
+      return *this;
+    }
+#endif // __GXX_EXPERIMENTAL_CXX0X__
+
     basic_string&
     assign(const basic_string& __str, size_type __pos, size_type __n)
     {
@@ -400,7 +423,7 @@ namespace __gnu_debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
     basic_string&
-    assign(initializer_list<_CharT> __l)
+    assign(std::initializer_list<_CharT> __l)
     {
       _Base::assign(__l);
       this->_M_invalidate_all();
@@ -479,7 +502,7 @@ namespace __gnu_debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
     void
-    insert(iterator __p, initializer_list<_CharT> __l)
+    insert(iterator __p, std::initializer_list<_CharT> __l)
     {
       _Base::insert(__p, __l);
       this->_M_invalidate_all();
@@ -611,7 +634,7 @@ namespace __gnu_debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       basic_string& replace(iterator __i1, iterator __i2,
-                           initializer_list<_CharT> __l)
+                           std::initializer_list<_CharT> __l)
       {
        __glibcxx_check_erase_range(__i1, __i2);
        _Base::replace(__i1.base(), __i2.base(), __l);