diff options
| author | Greg Smith <unknown> | 2017-12-13 07:45:41 +1100 | 
|---|---|---|
| committer | Greg Smith <unknown> | 2017-12-13 07:45:41 +1100 | 
| commit | 31e94e0d88f15919c42f54a1579ae3240fa9a0b4 (patch) | |
| tree | 336608aa7bd278db567f9b0b2be4c11f15b547e0 | |
| parent | 68530865b45906897c0d21497230bb896e047bf2 (diff) | |
| download | scintilla-mirror-31e94e0d88f15919c42f54a1579ae3240fa9a0b4.tar.gz | |
Use explicit typedefs instead of deprecated derivation from std::iterator.
This fixes a C4996 / STL4015 warning from Visual C++ 2017.5 that the
std::iterator class template is deprecated in C++17.
| -rw-r--r-- | src/Document.cxx | 24 | 
1 files changed, 21 insertions, 3 deletions
| diff --git a/src/Document.cxx b/src/Document.cxx index 08efa9ec2..81d022097 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -2600,8 +2600,14 @@ public:  #ifndef NO_CXX11_REGEX -class ByteIterator : public std::iterator<std::bidirectional_iterator_tag, char> { +class ByteIterator {  public: +	typedef std::bidirectional_iterator_tag iterator_category; +	typedef char value_type; +	typedef ptrdiff_t difference_type; +	typedef char* pointer; +	typedef char& reference; +  	const Document *doc;  	Sci::Position position;  	ByteIterator(const Document *doc_ = 0, Sci::Position position_ = 0) : doc(doc_), position(position_) { @@ -2663,7 +2669,7 @@ public:  // On Windows, report non-BMP characters as 2 separate surrogates as that  // matches wregex since it is based on wchar_t. -class UTF8Iterator : public std::iterator<std::bidirectional_iterator_tag, wchar_t> { +class UTF8Iterator {  	// These 3 fields determine the iterator position and are used for comparisons  	const Document *doc;  	Sci::Position position; @@ -2673,6 +2679,12 @@ class UTF8Iterator : public std::iterator<std::bidirectional_iterator_tag, wchar  	size_t lenCharacters;  	wchar_t buffered[2];  public: +	typedef std::bidirectional_iterator_tag iterator_category; +	typedef wchar_t value_type; +	typedef ptrdiff_t difference_type; +	typedef wchar_t* pointer; +	typedef wchar_t& reference; +  	UTF8Iterator(const Document *doc_ = 0, Sci::Position position_ = 0) :  		doc(doc_), position(position_), characterIndex(0), lenBytes(0), lenCharacters(0) {  		buffered[0] = 0; @@ -2775,10 +2787,16 @@ private:  // On Unix, report non-BMP characters as single characters -class UTF8Iterator : public std::iterator<std::bidirectional_iterator_tag, wchar_t> { +class UTF8Iterator {  	const Document *doc;  	Sci::Position position;  public: +	typedef std::bidirectional_iterator_tag iterator_category; +	typedef wchar_t value_type; +	typedef ptrdiff_t difference_type; +	typedef wchar_t* pointer; +	typedef wchar_t& reference; +  	UTF8Iterator(const Document *doc_=0, Sci::Position position_=0) : doc(doc_), position(position_) {  	}  	UTF8Iterator(const UTF8Iterator &other) NOEXCEPT { | 
