Keep iterator debugging off on MSVC 17.14 and newer
The _MSC_VER >= 1944 branch was added to avoid _CONTAINER_DEBUG_LEVEL, which that toolset removed outright (yvals.h now static_asserts on it), but it also stopped setting _ITERATOR_DEBUG_LEVEL, which is unrelated and still supported. _MSVC_STL_HARDENING is not a replacement for it. Release was unaffected because NDEBUG already implies level 0, but Debug picked up level 2 and the bounds assert in std::array::operator[] pulled in _CrtDbgReport -- a user-mode debug CRT symbol that cannot be resolved under /NODEFAULTLIB: natives_impl_windows.cpp.obj : error LNK2019: unresolved external symbol _CrtDbgReport referenced in function std::array<unsigned __int64,4>::operator[] The CMake files carry $<CONFIG:Debug> genexes throughout, so Debug is a supported configuration. Hoist only _ITERATOR_DEBUG_LEVEL out of the version check and leave _CONTAINER_DEBUG_LEVEL guarded. Debug and Release both link again.
N
namazso committed
1f72c661c2426c352cbb6d12fcca14744324be85
Parent: c0b72c1