Updated iterator class updated the code which was using the std::iterator class, which has been marked as deprecated in the C++17 standard Signed-off-by: ABHISHEK ANAND <abhishekabhishek1012@gmail.com>
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;