]> git.apps.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)
committerKefu Chai <tchaikov@gmail.com>
Tue, 1 Mar 2022 16:29:28 +0000 (00:29 +0800)
std::iterator<> is deprecated in C++17, so let's just
define the required traits directly.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
src/include/rados/librados.hpp

index 7c883c33648d008f33088bd9bc18d70cd37ea186..3caa7545540906afe7b91849ba5b51a9a6408a48 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();