mirror of
https://github.com/nlohmann/json.git
synced 2026-10-03 21:20:30 +00:00
Fix CI: json_view tests without exceptions, on clang 3.6, and single header
- ci_test_noexceptions: the helpers that compare the exceptions of json_document::parse() and json::parse() catch them outside a CHECK_THROWS, so with JSON_NOEXCEPTION the first parse error aborted the test. Compile those comparisons only with exceptions, as unit-class_parser.cpp does. - ci_test_gcc: -Werror=unused-result for CHECK_THROWS_AS(json_document:: parse(...)); assign the result to a dummy document. - ci_test_compilers_clang (3.6): `const json_view invalid;` needs a user-provided default constructor there (CWG 253); value-initialize it. - ci_test_single_header: json_view.hpp now exists as a single header and contains the internal view headers, so unit-json_view_builder.cpp includes it instead of the detail headers in that mode, and the test is built again with the single header. - Regenerate single_include/nlohmann/json_view.hpp for the builder change merged from json-view/08-view-builder. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
@@ -955,6 +955,14 @@ class builder
|
||||
return w;
|
||||
}
|
||||
|
||||
/// a compile-time option as a runtime condition: testing the template
|
||||
/// argument directly makes a condition like `TrailingCommas && c == ']'`
|
||||
/// constant when the option is off, which MSVC reports as C4127
|
||||
static NLOHMANN_VIEW_ALWAYS_INLINE bool enabled(bool option) noexcept
|
||||
{
|
||||
return option;
|
||||
}
|
||||
|
||||
/// The parse state and the parser proper. The cursor is a local object of
|
||||
/// run() whose address never escapes (everything it calls out of line is a
|
||||
/// member of the builder and gets the positions it needs), so that the
|
||||
@@ -1084,7 +1092,7 @@ arr_next:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (TrailingCommas && cur() == ']')
|
||||
if (enabled(TrailingCommas) && cur() == ']')
|
||||
{
|
||||
++p;
|
||||
goto close_container;
|
||||
@@ -1151,7 +1159,7 @@ obj_next:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (TrailingCommas && cur() == '}')
|
||||
if (enabled(TrailingCommas) && cur() == '}')
|
||||
{
|
||||
++p;
|
||||
goto close_container;
|
||||
@@ -1293,7 +1301,7 @@ indent_done:
|
||||
{
|
||||
++p;
|
||||
}
|
||||
if (Comments && cur() == '/')
|
||||
if (enabled(Comments) && cur() == '/')
|
||||
{
|
||||
const unsigned char* const q = cold.comment(p);
|
||||
if (q == nullptr)
|
||||
|
||||
Reference in New Issue
Block a user