JuliaStrings / utf8proc

a clean C library for processing UTF-8 Unicode data

Home Page:http://juliastrings.github.io/utf8proc/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

STL4015 Warnings (deprecated in C++17) when compiling with VS 2019 16.5.0/16.5.1 and std:c++latest

Andreas-Schniertshauer opened this issue · comments

checked.h(266,34) / unchecked.h: warning C4996: 'std::iterator<std::bidirectional_iterator_tag,utf8::uint32_t,ptrdiff_t,utf8::uint32_t *,utf8::uint32_t &>': 
warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is
deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never
required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from
std::iterator and start providing publicly accessible typedefs named iterator_category, value_type,
difference_type, pointer, and reference. Note that value_type is required to be non-const, even for
constant iterators. You can define
_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or
_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning.

utf8proc is not using std::iterator — it is a pure C library. It looks like this warning is coming from some other header file (checked.h) that your compiler is pulling in.

Ah, o.k. seems to be a new Visual Studio "feature".