fmtlib/fmt

MSVC is deprecating `stdext::checked_array_iterator`

StephanTLavavej opened this issue · 1 comments

format.h uses MSVC's stdext::checked_array_iterator:

fmt/include/fmt/format.h

Lines 563 to 565 in 661b23e

#if defined(_SECURE_SCL) && _SECURE_SCL
// Make a checked iterator to avoid MSVC warnings.
template <typename T> using checked_ptr = stdext::checked_array_iterator<T*>;

After microsoft/STL#3818 ships in VS 2022 17.8 Preview 2, this will emit deprecation warnings (in C++17 mode and later). We want to discourage use of this non-Standard extension, towards eliminating it in a future version.

MSVC's STL eliminated the incredibly annoying "copying to a raw pointer" warnings many versions ago (it was VS 2017 15.8, I believe), so you should simply be able to drop this usage of stdext::checked_array_iterator and use portable code for all platforms.

vitaut commented

Removed all uses of stdext::checked_array_iterator in 9bea6ec. Thanks for letting me know about the deprecation.