[yaml-cpp] Fix yaml-cpp compile error on MSVC 2019 using upstream patch (#51313)

This commit is contained in:
John Wason 2026-04-22 18:31:53 -04:00 committed by GitHub
parent 8156d0b35e
commit cf3effd29a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 58 additions and 1 deletions

49
ports/yaml-cpp/1422.patch Normal file
View File

@ -0,0 +1,49 @@
From 5bb17bd05bb9dcb845d3dde0526df07b2df50101 Mon Sep 17 00:00:00 2001
From: Simon Gene Gottlieb <simon@gottliebtfreitag.de>
Date: Mon, 16 Mar 2026 23:20:31 +0100
Subject: [PATCH] fix: accepted by vs16.11
---
src/contrib/dragonbox.h | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/contrib/dragonbox.h b/src/contrib/dragonbox.h
index de5a79f11..6160e5fcd 100644
--- a/src/contrib/dragonbox.h
+++ b/src/contrib/dragonbox.h
@@ -920,16 +920,20 @@ namespace jkj {
#endif
}
- template <template <stdr::size_t> class Info, stdr::int_least32_t min_exponent,
- stdr::int_least32_t max_exponent, stdr::size_t current_tier,
- stdr::int_least32_t supported_min_exponent = Info<current_tier>::min_exponent,
- stdr::int_least32_t supported_max_exponent = Info<current_tier>::max_exponent>
+ template <stdr::int_least32_t min_exponent,
+ stdr::int_least32_t max_exponent,
+ stdr::int_least32_t supported_min_exponent,
+ stdr::int_least32_t supported_max_exponent
+ >
constexpr bool is_in_range(int) noexcept {
return min_exponent >= supported_min_exponent &&
max_exponent <= supported_max_exponent;
}
- template <template <stdr::size_t> class Info, stdr::int_least32_t min_exponent,
- stdr::int_least32_t max_exponent, stdr::size_t current_tier>
+ template <stdr::int_least32_t min_exponent,
+ stdr::int_least32_t max_exponent,
+ stdr::int_least32_t supported_min_exponent,
+ stdr::int_least32_t supported_max_exponent
+ >
constexpr bool is_in_range(...) noexcept {
// Supposed to be always false, but formally dependent on the template parameters.
static_assert(min_exponent > max_exponent,
@@ -939,7 +943,7 @@ namespace jkj {
template <template <stdr::size_t> class Info, stdr::int_least32_t min_exponent,
stdr::int_least32_t max_exponent, stdr::size_t current_tier = 0,
- bool = is_in_range<Info, min_exponent, max_exponent, current_tier>(0)>
+ bool = is_in_range<min_exponent, max_exponent, Info<current_tier>::min_exponent, Info<current_tier>::max_exponent>(0)>
struct compute_impl;
template <template <stdr::size_t> class Info, stdr::int_least32_t min_exponent,

View File

@ -4,6 +4,8 @@ vcpkg_from_github(
REF "yaml-cpp-${VERSION}"
SHA512 59f730e8c5744f1ccd542c1144db8d4d949012f72aab0b84ba4a818db25a0f847569b61238ab72ed5b0b2e9482b8d5007651b7185f4ca9e99045d5160259b565
HEAD_REF master
PATCHES
1422.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" YAML_BUILD_SHARED_LIBS)

View File

@ -1,6 +1,7 @@
{
"name": "yaml-cpp",
"version-semver": "0.9.0",
"port-version": 1,
"description": "yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec.",
"homepage": "https://github.com/jbeder/yaml-cpp",
"documentation": "https://codedocs.xyz/jbeder/yaml-cpp/index.html",

View File

@ -11082,7 +11082,7 @@
},
"yaml-cpp": {
"baseline": "0.9.0",
"port-version": 0
"port-version": 1
},
"yandex-disk-cpp-client": {
"baseline": "1.0.4",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "6c75a47ce13be350ab8f3812efc7bd58dea0755f",
"version-semver": "0.9.0",
"port-version": 1
},
{
"git-tree": "b75fb2d4098c0f311abc661472de443ba38c6e6a",
"version-semver": "0.9.0",