]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
include/rados: define iterator without std::iterator<>
authorKefu Chai <tchaikov@gmail.com>
Mon, 28 Feb 2022 15:01:27 +0000 (23:01 +0800)
committerRonen Friedman <rfriedma@redhat.com>
Thu, 29 Jun 2023 11:59:21 +0000 (06:59 -0500)
std::iterator<> is deprecated in C++17, so let's just
define the required traits directly.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
(cherry picked from commit 905969611d256b6613bd86347bd51ddeb0603b79)

src/include/rados/librados.hpp

index b40d7bf9a571dc5ab6c77936f719b1bc3a3bf2f5..712a5da824bc9b88c4c67c41e0039319acfd63f9 100644 (file)
@@ -104,8 +104,13 @@ inline namespace v14_2_0 {
   };
   CEPH_RADOS_API std::ostream& operator<<(std::ostream& os, const librados::ObjectCursor& oc);
 
-  class CEPH_RADOS_API NObjectIterator : public std::iterator <std::forward_iterator_tag, ListObject> {
+  class CEPH_RADOS_API NObjectIterator {
   public:
+    using iterator_category = std::forward_iterator_tag;
+    using value_type = ListObject;
+    using difference_type = std::ptrdiff_t;
+    using pointer = ListObject*;
+    using reference = ListObject&;
     static const NObjectIterator __EndObjectIterator;
     NObjectIterator(): impl(NULL) {}
     ~NObjectIterator();