vcpkg/ports/bond/fix-msc-ver.patch
jim wang 54d1a244ff
[bond] Fixed compilation error under Windows when msvc version is greater than or equal to 1915 (#38471)
`D:\b\bond\src\10.0.0-efd5420c47.clean\cpp\inc\bond\core\detail\sdl.h(29):
error C4996: 'stdext::checked_array_iterator<_Ptr>': 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.`

The above problem occurred when I was testing an internal version of
msvc, and then I consulted Stephan T. Lavavej. He proposed a repair plan
and submitted PR [1205](https://github.com/microsoft/bond/pull/1205)
upstream. I used stephan's repair plan to fix this problem in vcpkg.

- [X] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] ~~SHA512s are updated for each updated download.~~
- [ ] ~~The "supports" clause reflects platforms that may be fixed by
this new version.~~
- [ ] ~~Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.~~
- [ ] ~~Any patches that are no longer applied are deleted from the
port's directory.~~
- [X] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [X] Only one version is added to each modified port's versions file.

Compile test pass with following triplets:
```
x64-windows
```
2024-04-30 11:31:53 -07:00

14 lines
404 B
Diff

diff --git a/cpp/inc/bond/core/detail/sdl.h b/cpp/inc/bond/core/detail/sdl.h
index 2a515f8..a38e6ff 100644
--- a/cpp/inc/bond/core/detail/sdl.h
+++ b/cpp/inc/bond/core/detail/sdl.h
@@ -24,7 +24,7 @@
namespace bond { namespace detail
{
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && _MSC_VER < 1915
template<class Iterator> inline
stdext::checked_array_iterator<Iterator> make_checked_array_iterator(