re PR libstdc++/80761 (std::set<T,C,A>::insert_return_type uses wrong iterator type)
authorFrançois Dumont <fdumont@gcc.gnu.org>
Mon, 18 Dec 2017 21:59:17 +0000 (21:59 +0000)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Mon, 18 Dec 2017 21:59:17 +0000 (21:59 +0000)
2017-11-20  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/80761
* include/debug/map.h
(std::__debug::map<>::insert_return_type): Define using
_Node_insert_return.
* include/debug/set.h (std::__debug::set<>::insert_return_type):
Likewise.
* include/debug/unordered_map:
(std::__debug::unordered_map<>::insert_return_type): Likewise.
* include/debug/unordered_set:
(std::__debug::unordered_set<>::insert_return_type): Likewise.

From-SVN: r255789

libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/map.h
libstdc++-v3/include/debug/set.h
libstdc++-v3/include/debug/unordered_map
libstdc++-v3/include/debug/unordered_set

index 08096d10e7cb8bb8cde162018fe20ba7bdd4f212..2a99643feec527b0690c7c123c16cbf86235c15f 100644 (file)
@@ -1,3 +1,16 @@
+2017-11-20  François Dumont  <fdumont@gcc.gnu.org>
+
+       PR libstdc++/80761
+       * include/debug/map.h
+       (std::__debug::map<>::insert_return_type): Define using
+       _Node_insert_return.
+       * include/debug/set.h (std::__debug::set<>::insert_return_type):
+       Likewise.
+       * include/debug/unordered_map:
+       (std::__debug::unordered_map<>::insert_return_type): Likewise.
+       * include/debug/unordered_set:
+       (std::__debug::unordered_set<>::insert_return_type): Likewise.
+
 2017-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
 
        PR libstdc++/68430
index d5a2c9f6e6f60f8155aeffc0d80d87bdc46a4928..f769b501b584adbfdd4eeb72d06e959ebed82be9 100644 (file)
@@ -401,13 +401,7 @@ namespace __debug
 
 #if __cplusplus > 201402L
       using node_type = typename _Base::node_type;
-
-      struct insert_return_type
-      {
-       bool inserted;
-       iterator position;
-       node_type node;
-      };
+      using insert_return_type = _Node_insert_return<iterator, node_type>;
 
       node_type
       extract(const_iterator __position)
@@ -431,7 +425,7 @@ namespace __debug
       {
        auto __ret = _Base::insert(std::move(__nh));
        iterator __pos = iterator(__ret.position, this);
-       return { __ret.inserted, __pos, std::move(__ret.node) };
+       return { __pos, __ret.inserted, std::move(__ret.node) };
       }
 
       iterator
index 5353cfe87b29671bb3cb4d63c44696dce38de023..4466bfc98e89ab805a02d853681a945b03998775 100644 (file)
@@ -298,13 +298,7 @@ namespace __debug
 
 #if __cplusplus > 201402L
       using node_type = typename _Base::node_type;
-
-      struct insert_return_type
-      {
-       bool inserted;
-       iterator position;
-       node_type node;
-      };
+      using insert_return_type = _Node_insert_return<iterator, node_type>;
 
       node_type
       extract(const_iterator __position)
@@ -328,7 +322,7 @@ namespace __debug
       {
        auto __ret = _Base::insert(std::move(__nh));
        iterator __pos = iterator(__ret.position, this);
-       return { __ret.inserted, __pos, std::move(__ret.node) };
+       return { __pos, __ret.inserted, std::move(__ret.node) };
       }
 
       iterator
index c68ccaa3372593cc633f8cac8df40dbd7317994f..0ed9922c5bf9fa23b94107ee30eb1da40262c854 100644 (file)
@@ -462,13 +462,7 @@ namespace __debug
 
 #if __cplusplus > 201402L
       using node_type = typename _Base::node_type;
-
-      struct insert_return_type
-      {
-       bool inserted;
-       iterator position;
-       node_type node;
-      };
+      using insert_return_type = _Node_insert_return<iterator, node_type>;
 
       node_type
       extract(const_iterator __position)
@@ -499,7 +493,7 @@ namespace __debug
       {
        auto __ret = _Base::insert(std::move(__nh));
        iterator __pos = iterator(__ret.position, this);
-       return { __ret.inserted, __pos, std::move(__ret.node) };
+       return { __pos, __ret.inserted, std::move(__ret.node) };
       }
 
       iterator
index 1fe493fe52fe2acd63f355ec0ff0ca2a20af873a..1f8e95f6c2296a3e3008156d49ee950294a68b89 100644 (file)
@@ -372,13 +372,7 @@ namespace __debug
 
 #if __cplusplus > 201402L
       using node_type = typename _Base::node_type;
-
-      struct insert_return_type
-      {
-       bool inserted;
-       iterator position;
-       node_type node;
-      };
+      using insert_return_type = _Node_insert_return<iterator, node_type>;
 
       node_type
       extract(const_iterator __position)
@@ -409,7 +403,7 @@ namespace __debug
       {
        auto __ret = _Base::insert(std::move(__nh));
        iterator __pos = iterator(__ret.position, this);
-       return { __ret.inserted, __pos, std::move(__ret.node) };
+       return { __pos, __ret.inserted, std::move(__ret.node) };
       }
 
       iterator