Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile warnings in VS 2022 17.8.0 - stdext::make_checked_array_iterator stdext::make_unchecked_array_iterator beeing deprecated #1250

Open
JanFellner opened this issue Nov 21, 2023 · 1 comment

Comments

@JanFellner
Copy link

JanFellner commented Nov 21, 2023

I`m seeing compiler warnings since the latest VS 2022 update (17.8.0) on Windows 11 with the latest cryptopp 8.9

`17:30:31:685 1>X:\cryptopp\integer.cpp(3061,12): warning C4996: 'stdext::make_checked_array_iterator': 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.
17:30:31:685 1>(compiling source file '/integer.cpp')

17:30:32:401 1>X:\cryptopp\zdeflate.cpp(422,155): warning C4996: 'stdext::unchecked_array_iterator<const CryptoPP::byte *>::operator -': 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.
`

It appears loosen from the platformSDK and loosen from the C++ standard

Tried PlatformSDK:

  • 10.0.19041.0
  • 10.0.22000.0

C++ Language standard:

  • ISO C++17 Standard (/std:c++17)
  • ISO C++20 Standard (/std:c++20)
@JanFellner JanFellner changed the title Compile warnings in VS 2022 17.8.0 - stdext::make_checked_array_iterator std::make_unchecked_array_iteratorbeeing deprecated Compile warnings in VS 2022 17.8.0 - stdext::make_checked_array_iterator std::make_unchecked_array_iterator beeing deprecated Nov 21, 2023
@JanFellner JanFellner changed the title Compile warnings in VS 2022 17.8.0 - stdext::make_checked_array_iterator std::make_unchecked_array_iterator beeing deprecated Compile warnings in VS 2022 17.8.0 - stdext::make_checked_array_iterator stdext::make_unchecked_array_iterator beeing deprecated Nov 21, 2023
@irwir
Copy link
Contributor

irwir commented Jan 31, 2024

The lazy way of handling the issue was disabled warnings, but this works only while extensions were not removed completely.

The string stdext:: was found only in two files in the library, and all usages were deprecated.
Brief look at the code of those Microsoft's extensions reveals only ordinary things: see if it was a pointer type, non-null and not beyond the bounds. This kind of checks in most cases could be made in the code or even were unnecessary.
Some people just removed these long names and used standard pointers or iterators.
Cryptopp library might follow suit, and thus simplify the code.
Alternatively, use of extensions could be restricted to non-deprecating versions of compiler and C++ standards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants