Merge remote-tracking branch 'origin/develop' into claude/fix-issue-3989-db7e45

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
Niels Lohmann committed 2026-10-15 22:46:35 +02:00
commit c9fdfc39db
7 files changed
+62 -65

No files matched your search

@@ -5263,7 +5263,7 @@ class binary_reader
}
JSON_HEDLEY_NEVER_INLINE
bool bson_unsupported_type_error(const std::size_t position, const char element_type)
bool bson_unsupported_type_error(const std::size_t position, const char_int_type element_type)
{
const std::string cr_str = hex_byte(static_cast<std::uint8_t>(element_type));
return report_error(position, cr_str,
+1 -1
View File
@@ -1077,7 +1077,7 @@ class json_pointer
std::size_t token_count = 0;
for (std::size_t i = 0; i < size; ++i)
{
token_count += (reference_string[i] == '/') ? 1 : 0;
token_count += static_cast<std::size_t>(reference_string[i] == '/');
}
result.reserve(token_count);
+13 -12
View File
@@ -17,18 +17,7 @@ NLOHMANN_JSON_NAMESPACE_BEGIN
namespace detail
{
/*!
* @brief string escaping as described in RFC 6901 (Sect. 4)
* @param[in] s string to escape
* @return escaped string
*
* Note the order of escaping "~" to "~0" and "/" to "~1" is important.
*
* The string is rebuilt in a single pass, appending whole runs between the
* characters that need escaping, while repeated replace() calls would move
* the tail of the string once per escaped character. @ref escape_into appends
* the escaped string to an existing one.
*/
/// append @a s to @a out, escaped like @ref escape does
template<typename StringType>
inline void escape_into(StringType& out, const StringType& s)
{
@@ -47,6 +36,18 @@ inline void escape_into(StringType& out, const StringType& s)
out.append(s.data() + run, size - run);
}
/*!
* @brief string escaping as described in RFC 6901 (Sect. 4)
* @param[in] s string to escape
* @return escaped string
*
* Note the order of escaping "~" to "~0" and "/" to "~1" is important.
*
* The string is rebuilt in a single pass, appending whole runs between the
* characters that need escaping, while repeated replace() calls would move
* the tail of the string once per escaped character. @ref escape_into appends
* the escaped string to an existing one.
*/
template<typename StringType>
inline StringType escape(const StringType& s)
{