diff --git a/modules/conop/src/amino_acids.hh b/modules/conop/src/amino_acids.hh index 85aef04878cb3f59f8a7f026a13dbc3cd327c39a..376dd0fba0c2958ec7e5600936d5289943c12b3e 100644 --- a/modules/conop/src/amino_acids.hh +++ b/modules/conop/src/amino_acids.hh @@ -58,8 +58,13 @@ char DLLEXPORT_OST_CONOP ResidueNameToOneLetterCode(String rn); AminoAcid DLLEXPORT_OST_CONOP ResidueNameToAminoAcid(String rn); -class AminoAcidSetIterator : public std::iterator<std::forward_iterator_tag, - AminoAcid> { +class AminoAcidSetIterator { + using iterator_category = std::forward_iterator_tag; + using value_type = AminoAcid; + using difference_type = std::ptrdiff_t; + using pointer = AminoAcid*; + using reference = AminoAcid&; + public: AminoAcidSetIterator(unsigned int bits, int start): bits_(bits), curr_(start) diff --git a/modules/geom/src/circular_iterator.hh b/modules/geom/src/circular_iterator.hh index 58d47ab462e3b2eb6cd0e5c2af0e18552659eb4e..059a51282b797c47ac9c76702d072fe60719b0e0 100644 --- a/modules/geom/src/circular_iterator.hh +++ b/modules/geom/src/circular_iterator.hh @@ -19,13 +19,15 @@ #ifndef CIRCULAR_ITERATOR_HH #define CIRCULAR_ITERATOR_HH -#include <iterator> - template<typename T> -class const_circular_iter : public std::iterator<std::bidirectional_iterator_tag,typename T::value_type> +class const_circular_iter { -typedef typename T::const_iterator iterator; -typedef typename T::value_type value_type; + using iterator = typename T::const_iterator; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = typename T::value_type; + using difference_type = std::ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; protected: iterator iter; iterator begin; @@ -97,10 +99,15 @@ public: template<typename T> -class circular_iter : public std::iterator<std::bidirectional_iterator_tag,typename T::value_type> +class circular_iter { -typedef typename T::iterator iterator; -typedef typename T::value_type value_type; + using iterator = typename T::iterator; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = typename T::value_type; + using difference_type = std::ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; + private: iterator iter; iterator begin; diff --git a/modules/mol/base/src/impl/pointer_iterator.hh b/modules/mol/base/src/impl/pointer_iterator.hh index b8c679df84ae1c11d5a1d38375fe8f385bbde2ba..098cb2270174946327e8fca35fa14905ad00c686 100644 --- a/modules/mol/base/src/impl/pointer_iterator.hh +++ b/modules/mol/base/src/impl/pointer_iterator.hh @@ -24,7 +24,14 @@ namespace ost { namespace mol { namespace impl { template <typename T> -class pointer_it : public std::iterator<std::forward_iterator_tag, T>{ +class pointer_it { + + using iterator_category = std::forward_iterator_tag; + using value_type = T; + using difference_type = std::ptrdiff_t; + using pointer = T*; + using reference = T&; + public: pointer_it(T* s): s_(s) { } diff --git a/modules/seq/base/src/aligned_column_iterator.hh b/modules/seq/base/src/aligned_column_iterator.hh index 72fba01a8a56b7ba2d52e36ee876abc3ce9fef9a..91dd301e41bd6d8711ef0c6095cce25b1dc644ae 100644 --- a/modules/seq/base/src/aligned_column_iterator.hh +++ b/modules/seq/base/src/aligned_column_iterator.hh @@ -26,8 +26,14 @@ */ namespace ost { namespace seq { -class AlignedColumnIterator : public std::iterator<std::forward_iterator_tag, - AlignedColumn> { +class AlignedColumnIterator { + + using iterator_category = std::forward_iterator_tag; + using value_type = AlignedColumn; + using difference_type = std::ptrdiff_t; + using pointer = AlignedColumn*; + using reference = AlignedColumn&; + private: void UpdateVal() { diff --git a/modules/seq/base/src/impl/sequence_list_iterator.hh b/modules/seq/base/src/impl/sequence_list_iterator.hh index c798e92ab20fa8425fde0e643d717be95f7ad674..72b819a197c0995e140649e43d2cf310050e61d0 100644 --- a/modules/seq/base/src/impl/sequence_list_iterator.hh +++ b/modules/seq/base/src/impl/sequence_list_iterator.hh @@ -28,12 +28,18 @@ namespace ost { namespace seq { namespace impl { /// \internal template <typename T, typename I> -class TEMPLATE_EXPORT SequenceListIterator - : public std::iterator<std::random_access_iterator_tag, T>{ +class TEMPLATE_EXPORT SequenceListIterator { public: - typedef T ValueType; - typedef I IteratorType; - typedef SequenceListIterator<T, I> ClassType; + using ValueType = T; + using IteratorType = I; + using ClassType = SequenceListIterator<T, I>; + + using iterator_category = std::random_access_iterator_tag; + using value_type = T; // duplicate + using difference_type = std::ptrdiff_t; + using pointer = T*; + using reference = T&; + protected: void UpdateVal() {