Yu-hsin Wang has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/66351?usp=email )

Change subject: systemc: replace the deprecated std::iterator
......................................................................

systemc: replace the deprecated std::iterator

std::iterator is deprecated in c++17. We can just declare the
required types for iterator traits directly without the helper.

Change-Id: I789e2c2b13e56cc391527686109df8b779474d09
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/66351
Reviewed-by: Gabe Black <gabebl...@google.com>
Maintainer: Gabe Black <gabebl...@google.com>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/systemc/ext/utils/sc_vector.hh
1 file changed, 23 insertions(+), 9 deletions(-)

Approvals:
  kokoro: Regressions pass
  Gabe Black: Looks good to me, approved; Looks good to me, approved




diff --git a/src/systemc/ext/utils/sc_vector.hh b/src/systemc/ext/utils/sc_vector.hh
index ef0d7dc..c1d9ded 100644
--- a/src/systemc/ext/utils/sc_vector.hh
+++ b/src/systemc/ext/utils/sc_vector.hh
@@ -49,6 +49,7 @@

 #include <stdint.h>

+#include <cstddef>
 #include <exception>
 #include <iterator>
 #include <vector>
@@ -259,10 +260,7 @@

 template <typename Element,
           typename AccessPolicy=sc_direct_access<Element> >
-class sc_vector_iter :
-        public std::iterator<std::random_access_iterator_tag,
-                             typename AccessPolicy::Type>,
-        private AccessPolicy
+class sc_vector_iter : private AccessPolicy
 {
   private:
     typedef Element ElementType;
@@ -282,8 +280,6 @@
     template <typename, typename>
     friend class sc_vector_iter;

-    typedef std::iterator<std::random_access_iterator_tag, AccessType>
-        BaseType;
     typedef sc_vector_iter ThisType;
     typedef sc_vector<PlainType> VectorType;
     typedef std::vector<void *> StorageType;
@@ -315,9 +311,11 @@
     // Conforms to Random Access Iterator category.
     // See ISO/IEC 14882:2003(E), 24.1 [lib.iterator.requirements]

-    typedef typename BaseType::difference_type difference_type;
-    typedef typename BaseType::reference reference;
-    typedef typename BaseType::pointer pointer;
+    using difference_type = std::ptrdiff_t;
+    using value_type = typename AccessPolicy::Type;
+    using reference = typename AccessPolicy::Type &;
+    using pointer = typename AccessPolicy::Type *;
+    using iterator_category = std::random_access_iterator_tag;

     sc_vector_iter() : Policy(), it_() {}


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/66351?usp=email To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I789e2c2b13e56cc391527686109df8b779474d09
Gerrit-Change-Number: 66351
Gerrit-PatchSet: 3
Gerrit-Owner: Yu-hsin Wang <yuhsi...@google.com>
Gerrit-Reviewer: Earl Ou <shunhsin...@google.com>
Gerrit-Reviewer: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Gabe Black <gabebl...@google.com>
Gerrit-Reviewer: Yu-hsin Wang <yuhsi...@google.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org

Reply via email to