meta4d-me/CatDogEngine

[spdlog] Waiting for spdlog to update format to avoid warning C4996

roeas opened this issue · 1 comments

roeas commented

VS2022 started marking stdext::checked_array_iterator as "deprecated" sometime between 17.7.6 and 17.8.2 witch makes our compilation fail.

warning C4996: 'stdext::checked_array_iterator<T *>::_Seek_to': warning STL4043: stdext::checked_array_iterator, stdext::unchecked_array_iterator, and related factory functions are non-Standard extensions and will be removed in the future. std::span (since C++20) and gsl::span can be used instead. You can define _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING or _SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS to suppress this warning.

Format has fixed this bug.
fmtlib/fmt#3540

But spdlog has not yet updated the format used.
gabime/spdlog#2912

As a temporary solution, we defined _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING to suppress warning C4996.
https://github.com/CatDogEngine/CatDogEngine/pull/433

Should update spdlog and remove _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING in the future.

Given that the related issue of spdlog is now closed. It looks like spdlog 1.x is hard to upgrade the bundled fmt, but we can use macro to specify an external fmt.