Merge pull request #2135 from shake-coder/updating_deprecated_iterator
Updated iterator class
diff --git a/lib/include/prjxray/big_endian_span.h b/lib/include/prjxray/big_endian_span.h
index 7f3ee52..0d72c4d 100644
--- a/lib/include/prjxray/big_endian_span.h
+++ b/lib/include/prjxray/big_endian_span.h
@@ -56,9 +56,15 @@
absl::Span<ByteType> bytes_;
};
- class iterator
- : public std::iterator<std::input_iterator_tag, value_type> {
+ class iterator {
public:
+
+ using iterator_category = std::input_iterator_tag;
+ using value_type = BigEndianSpan::value_type;
+ using difference_type = std::ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
value_type operator*() const { return value_type(bytes_); }
bool operator==(const iterator& other) const {
diff --git a/lib/include/prjxray/segbits_file_reader.h b/lib/include/prjxray/segbits_file_reader.h
index 8635acb..4ac72b8 100644
--- a/lib/include/prjxray/segbits_file_reader.h
+++ b/lib/include/prjxray/segbits_file_reader.h
@@ -34,9 +34,14 @@
absl::string_view bit_;
};
- class iterator
- : public std::iterator<std::input_iterator_tag, value_type> {
- public:
+ class iterator {
+ public:
+ using iterator_category = std::input_iterator_tag;
+ using value_type = SegbitsFileReader::value_type;
+ using difference_type = std::ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
iterator& operator++();
bool operator==(iterator other) const {
diff --git a/lib/include/prjxray/xilinx/bitstream_reader.h b/lib/include/prjxray/xilinx/bitstream_reader.h
index bffa999..b47cd21 100644
--- a/lib/include/prjxray/xilinx/bitstream_reader.h
+++ b/lib/include/prjxray/xilinx/bitstream_reader.h
@@ -33,9 +33,14 @@
// Implements an iterator over the words grouped in configuration
// packets.
- class iterator
- : public std::iterator<std::input_iterator_tag, value_type> {
- public:
+ class iterator {
+ public:
+ using iterator_category = std::input_iterator_tag;
+ using value_type = BitstreamReader::value_type;
+ using difference_type = std::ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
iterator& operator++();
bool operator==(const iterator& other) const;
diff --git a/lib/include/prjxray/xilinx/bitstream_writer.h b/lib/include/prjxray/xilinx/bitstream_writer.h
index 81cddaf..0f15b4f 100644
--- a/lib/include/prjxray/xilinx/bitstream_writer.h
+++ b/lib/include/prjxray/xilinx/bitstream_writer.h
@@ -51,9 +51,14 @@
typedef absl::Span<const uint32_t>::iterator data_iterator_t;
using itr_value_type = uint32_t;
- class packet_iterator
- : public std::iterator<std::input_iterator_tag, itr_value_type> {
- public:
+ class packet_iterator {
+ public:
+ using iterator_category = std::input_iterator_tag;
+ using value_type = BitstreamWriter::itr_value_type;
+ using difference_type = std::ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
packet_iterator& operator++();
bool operator==(const packet_iterator& other) const;
@@ -76,7 +81,7 @@
data_iterator_t itr_data);
private:
- friend iterator;
+ friend class iterator;
friend BitstreamWriter;
// Data iterators
@@ -89,9 +94,14 @@
packet_;
};
- class iterator
- : public std::iterator<std::input_iterator_tag, itr_value_type> {
- public:
+ class iterator {
+ public:
+ using iterator_category = std::input_iterator_tag;
+ using value_type = BitstreamWriter::itr_value_type;
+ using difference_type = std::ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
iterator& operator++();
bool operator==(const iterator& other) const;