1
0
mirror of https://github.com/nlohmann/json.git synced 2025-08-09 05:22:48 +03:00

Merge branch 'develop' of https://github.com/nlohmann/json into issue2863

 Conflicts:
	.github/workflows/windows.yml
This commit is contained in:
Niels Lohmann
2021-08-14 11:19:48 +02:00
23 changed files with 735 additions and 19 deletions

View File

@@ -56,6 +56,15 @@ class binary_writer
break;
}
case value_t::null:
case value_t::array:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default:
{
JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()), j));;
@@ -381,6 +390,7 @@ class binary_writer
break;
}
case value_t::discarded:
default:
break;
}
@@ -702,6 +712,7 @@ class binary_writer
break;
}
case value_t::discarded:
default:
break;
}
@@ -906,6 +917,7 @@ class binary_writer
break;
}
case value_t::discarded:
default:
break;
}
@@ -926,6 +938,7 @@ class binary_writer
if (JSON_HEDLEY_UNLIKELY(it != BasicJsonType::string_t::npos))
{
JSON_THROW(out_of_range::create(409, "BSON key cannot contain code point U+0000 (at byte " + std::to_string(it) + ")", j));
static_cast<void>(j);
}
return /*id*/ 1ul + name.size() + /*zero-terminator*/1u;
@@ -1157,6 +1170,7 @@ class binary_writer
return header_size + 0ul;
// LCOV_EXCL_START
case value_t::discarded:
default:
JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert)
return 0ul;
@@ -1203,6 +1217,7 @@ class binary_writer
return write_bson_null(name);
// LCOV_EXCL_START
case value_t::discarded:
default:
JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert)
return;
@@ -1493,6 +1508,7 @@ class binary_writer
case value_t::object:
return '{';
case value_t::discarded:
default: // discarded values
return 'N';
}
@@ -1542,8 +1558,10 @@ class binary_writer
void write_compact_float(const number_float_t n, detail::input_format_t format)
{
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wfloat-equal"
#endif
if (static_cast<double>(n) >= static_cast<double>(std::numeric_limits<float>::lowest()) &&
static_cast<double>(n) <= static_cast<double>((std::numeric_limits<float>::max)()) &&
static_cast<double>(static_cast<float>(n)) == static_cast<double>(n))
@@ -1560,7 +1578,9 @@ class binary_writer
: get_msgpack_float_prefix(n));
write_number(n);
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
}
public: