[multiple changes]
authorPaolo Carlini <paolo@gcc.gnu.org>
Sat, 21 Jun 2008 17:19:11 +0000 (17:19 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sat, 21 Jun 2008 17:19:11 +0000 (17:19 +0000)
2008-06-21  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/stl_move.h: Rename to move.h.
* include/std/utility: Adjust.
* include/ext/vstring_util.h: Likewise.
* include/ext/throw_allocator.h: Likewise.
* include/ext/pool_allocator.h: Likewise.
* include/ext/bitmap_allocator.h: Likewise.
* include/ext/new_allocator.h: Likewise.
* include/ext/malloc_allocator.h: Likewise.
* include/ext/array_allocator.h: Likewise.
* include/ext/mt_allocator.h: Likewise.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_heap.h: Likewise.
* include/bits/stl_pair.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* testsuite/util/testsuite_allocator.h: Likewise.
* testsuite/util/testsuite_iterators.h: Likewise.
* include/Makefile.am: Likewise.
* include/Makefile.in: Regenerate.

2008-06-21  Chris Fairles  <chris.fairles@gmail.com>

* include/bits/unique_ptr.h: New.
* include/std/memory: Adjust.
* include/Makefile.am: Add.
* testsuite/20_util/unique_ptr/requirements/explicit_instantiation/
explicit_instantiation.cc: New.
* testsuite/20_util/unique_ptr/assign/assign.cc: Likewise.
* include/Makefile.in: Regenerate.

From-SVN: r137004

libstdc++-v3/include/bits/move.h [new file with mode: 0644]
libstdc++-v3/include/bits/stl_move.h [deleted file]

diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h
new file mode 100644 (file)
index 0000000..ab5b494
--- /dev/null
@@ -0,0 +1,92 @@
+// Move, forward and identity for C++0x + swap -*- C++ -*-
+
+// Copyright (C) 2007 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 2, 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 COPYING.  If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/** @file stl_move.h
+ *  This is an internal header file, included by other library headers.
+ *  You should not attempt to use it directly.
+ */
+
+#ifndef _STL_MOVE_H
+#define _STL_MOVE_H 1
+
+#include <bits/c++config.h>
+#include <bits/concept_check.h>
+
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+#include <type_traits>
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+  // 20.2.2, forward/move
+  template<typename _Tp>
+    struct identity
+    {
+      typedef _Tp type;
+    };
+
+  template<typename _Tp>
+    inline _Tp&&
+    forward(typename std::identity<_Tp>::type&& __t)
+    { return __t; }
+
+  template<typename _Tp>
+    inline typename std::remove_reference<_Tp>::type&&
+    move(_Tp&& __t)
+    { return __t; }
+
+_GLIBCXX_END_NAMESPACE
+
+#define _GLIBCXX_MOVE(_Tp) std::move(_Tp)
+#else
+#define _GLIBCXX_MOVE(_Tp) (_Tp)
+#endif
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+  /**
+   *  @brief Swaps two values.
+   *  @param  a  A thing of arbitrary type.
+   *  @param  b  Another thing of arbitrary type.
+   *  @return   Nothing.
+  */
+  template<typename _Tp>
+    inline void
+    swap(_Tp& __a, _Tp& __b)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_SGIAssignableConcept<_Tp>)
+
+      _Tp __tmp = _GLIBCXX_MOVE(__a);
+      __a = _GLIBCXX_MOVE(__b);
+      __b = _GLIBCXX_MOVE(__tmp);
+    }
+
+_GLIBCXX_END_NAMESPACE
+
+#endif /* _STL_MOVE_H */
diff --git a/libstdc++-v3/include/bits/stl_move.h b/libstdc++-v3/include/bits/stl_move.h
deleted file mode 100644 (file)
index ab5b494..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// Move, forward and identity for C++0x + swap -*- C++ -*-
-
-// Copyright (C) 2007 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 2, 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 COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-/** @file stl_move.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
- */
-
-#ifndef _STL_MOVE_H
-#define _STL_MOVE_H 1
-
-#include <bits/c++config.h>
-#include <bits/concept_check.h>
-
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
-#include <type_traits>
-
-_GLIBCXX_BEGIN_NAMESPACE(std)
-
-  // 20.2.2, forward/move
-  template<typename _Tp>
-    struct identity
-    {
-      typedef _Tp type;
-    };
-
-  template<typename _Tp>
-    inline _Tp&&
-    forward(typename std::identity<_Tp>::type&& __t)
-    { return __t; }
-
-  template<typename _Tp>
-    inline typename std::remove_reference<_Tp>::type&&
-    move(_Tp&& __t)
-    { return __t; }
-
-_GLIBCXX_END_NAMESPACE
-
-#define _GLIBCXX_MOVE(_Tp) std::move(_Tp)
-#else
-#define _GLIBCXX_MOVE(_Tp) (_Tp)
-#endif
-
-_GLIBCXX_BEGIN_NAMESPACE(std)
-
-  /**
-   *  @brief Swaps two values.
-   *  @param  a  A thing of arbitrary type.
-   *  @param  b  Another thing of arbitrary type.
-   *  @return   Nothing.
-  */
-  template<typename _Tp>
-    inline void
-    swap(_Tp& __a, _Tp& __b)
-    {
-      // concept requirements
-      __glibcxx_function_requires(_SGIAssignableConcept<_Tp>)
-
-      _Tp __tmp = _GLIBCXX_MOVE(__a);
-      __a = _GLIBCXX_MOVE(__b);
-      __b = _GLIBCXX_MOVE(__tmp);
-    }
-
-_GLIBCXX_END_NAMESPACE
-
-#endif /* _STL_MOVE_H */