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".