Fix serialization macros with no member variables#5099
Conversation
|
See this comment for a less intrusive suggestion: #4994 (comment) |
|
Hey @nlohmann, can you approve running the rest of the workflows? |
🔴 Amalgamation check failed! 🔴The source code has not been amalgamated. @GhostVaibhav |
|
This pull request has been marked as stale because it has had no activity for 30 days. While we won’t close it automatically, we encourage you to update or comment if it is still relevant. Keeping pull requests active and up-to-date helps us review and merge changes more efficiently. Thank you for your contributions! |
nlohmann
left a comment
There was a problem hiding this comment.
Please check the DCO requirements and amalgamate the source code.
|
Hey @nlohmann, updated the code. Can you run the other workflows? Thanks! |
🔴 Amalgamation check failed! 🔴The source code has not been amalgamated. @GhostVaibhav |
|
There are some Clang-Tidy warnings, see https://github.com/nlohmann/json/actions/runs/25600095117/job/75152787756 |
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
* Fix missing exports from `json.cppm` Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> * Update documentation to describe what symbols are exported Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> * Add mention of `std` symbols Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> * Add `json_literals` inline namespace to `using` statement Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> * Remove internals (`nlohmann::detail::*`) from module Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> * Omit internals (`nlohmann::detail::*`) from modules documentation Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> * Restore `nlohmann::detail` symbols with mention of the MSVC bug Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> --------- Signed-off-by: Miko <110693261+mikomikotaishi@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.2 to 4.35.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@95e58e9...68bde55) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.19.0 to 2.19.1. - [Release notes](https://github.com/step-security/harden-runner/releases) - [Commits](step-security/harden-runner@8d3c67d...a5ad31d) --- updated-dependencies: - dependency-name: step-security/harden-runner dependency-version: 2.19.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
PR nlohmann#4873 introduced a safety check in sax_parse functions to catch nullptr passed as SAX parser object, which had been already annotated by JSON_HEDLEY_NON_NULL macro. Compilers (e.g. clang) which respected the non-null annotation tended to eliminate the safety check completely in optimized builds, while compilers which did not, compiled the safety check in. This led to different behaviors accross different compilers/platforms and/or build types (debug, release). This commit reverts PR nlohmann#4873 to remove this discrepancy. Passing null to non-null annotated parameter is considered to be undefined behavior. Fixes nlohmann#5048 Signed-off-by: Richard Musil <risa2000x@gmail.com> Co-authored-by: Richard Musil <risa2000x@gmail.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
… in array (nlohmann#5074) (nlohmann#5090) * fix: treat single-element brace-init as copy/move When passing a json value using brace initialization with a single element (e.g., `json j{someObj}` or `foo({someJson})`), C++ always prefers the initializer_list constructor over the copy/move constructor. This caused the value to be unexpectedly wrapped in a single-element array. This bug was previously compiler-dependent (GCC wrapped, Clang did not), but Clang 20 started matching GCC behavior, making it a universal issue. Fix: In the initializer_list constructor, when type deduction is enabled and the list has exactly one element, copy/move it directly instead of creating a single-element array. Before: json obj = {{"key", 1}}; json j{obj}; // -> [{"key":1}] (wrong: array) foo({obj}); // -> [{"key":1}] (wrong: array) After: json j{obj}; // -> {"key":1} (correct: copy) foo({obj}); // -> {"key":1} (correct: copy) To explicitly create a single-element array, use json::array({value}). Fixes the issue nlohmann#5074 Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * fix: regenerate amalgamated single_include/nlohmann/json.hpp - Add missing comment from include/nlohmann/json.hpp explaining the single-element brace-init fix (issue nlohmann#5074) - Fix extra 4-space indentation in embedded json_fwd.hpp section Regenerated by running: make amalgamate Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Revert brace-init semantics change and fix amalgamation The single-element brace-init change was a breaking change that cannot be accepted upstream. Reverted all related source, test, and doc changes, then regenerated single_include with correct indentation to pass the amalgamation CI check. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Fix: add JSON_BRACE_INIT_COPY_SEMANTICS opt-in macro for issue nlohmann#5074 Single-element brace initialization wrapping in an array cannot be fixed without breaking existing code. Added JSON_BRACE_INIT_COPY_SEMANTICS as an opt-in macro (default 0) so users can enable copy/move semantics for single-element brace init without affecting anyone relying on the current behavior. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * docs: add dedicated macro page and CI test target for JSON_BRACE_INIT_COPY_SEMANTICS Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * fix: remove compiler-dependent assertions from nlohmann#5074 regression test Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * fix: use defined() guard for JSON_BRACE_INIT_COPY_SEMANTICS to satisfy -Wundef Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * docs: fix section name in json_brace_init_copy_semantics.md to pass style check Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * docs: move Default definition section before Notes to fix style check order Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> --------- Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
* build2 integration doc update Signed-off-by: Joël Lamotte <mjklaim@gmail.com> Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> * completed build2 instructions and examples Signed-off-by: Joël Lamotte <mjklaim@gmail.com> Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> * added missing build2 buildfile Signed-off-by: Joël Lamotte <mjklaim@gmail.com> Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> * improvments/simplifications on build2 examples Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> * removed just (rebase issue) Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> * fixed removed trailing whitespace from the rebase Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> * fixed typo and improved wording Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> * fixed indentation/formatting and typos Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> --------- Signed-off-by: Joël Lamotte <mjklaim@gmail.com> Signed-off-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
…nn#5162) Signed-off-by: Swastik Bose <cpswastik31@gmail.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
) Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.9.0 to 5.0.0. - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](actions/dependency-review-action@2031cfc...a1d282b) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
…nn#5152) * Added front, pop_front, and push_front methods to json_pointers in order to facilitate root-to-leaf traversals of JSON object trees. (nlohmann#4889) Signed-off-by: trdesilva <5818730+trdesilva@users.noreply.github.com> * undid VS autoformatting in irrelevant code Signed-off-by: trdesilva <5818730+trdesilva@users.noreply.github.com> * Ran make amalgamate, added navigation to json_pointer's new front methods in mkdocs, and fixed errors in documented complexity for those methods. Signed-off-by: trdesilva <5818730+trdesilva@users.noreply.github.com> * Fixed GCC 4.8 compile error caused by const iterators Signed-off-by: trdesilva <5818730+trdesilva@users.noreply.github.com> * Fixed another gcc-4.8 compile error Signed-off-by: trdesilva <5818730+trdesilva@users.noreply.github.com> * amalgamated Signed-off-by: trdesilva <5818730+trdesilva@users.noreply.github.com> --------- Signed-off-by: trdesilva <5818730+trdesilva@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
…5167) When iteration_proxy_value<iter_impl<ordered_json>> appears in a context that requires it to be complete (function or lambda parameter), the compiler instantiates basic_json<ordered_map> and walks into set_parents(iterator, typename iterator::difference_type) while iterator is still incomplete, failing with "invalid use of incomplete type". basic_json::difference_type is already std::ptrdiff_t, so just naming the underlying type directly avoids the dependent lookup. Behavior and ABI are unchanged. This was the approach suggested in the issue thread. Added a regression case in unit-ordered_json.cpp using the same trigger pattern (lambda parameter naming the proxy type). Fixes nlohmann#3732 Signed-off-by: Akhilesh Arora <akhildawra@gmail.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
…acros (nlohmann#5163) * Fix compile error when using nlohmann ordered_map with WITH_DEFAULT macros ordered_map inherits its copy and move assignment from the underlying std vector, which requires value_type to be CopyAssignable. value_type is pair<const Key, T> whose assignment is deleted because of the const Key, so any code that assigns ordered_map (for example the ternary in NLOHMANN_JSON_FROM_WITH_DEFAULT) fails to compile (issue nlohmann#5122). Provide assignment operators on ordered_map that rebuild via clear plus push_back for copy and transfer the underlying buffer for move, neither of which needs pair assignment. Also switch the map-shaped from_json overload from a transform plus inserter idiom to a range-for plus emplace, which avoids the same hazard. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Update ordered_map.hpp removed unwanted comments Signed-off-by: SamareshSingh <97642706+ssam18@users.noreply.github.com> Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Update json.hpp Signed-off-by: SamareshSingh <97642706+ssam18@users.noreply.github.com> Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Address CI issues for ordered_map fix Declare an explicit defaulted destructor on ordered_map so the rule of five is complete (clang-tidy cppcoreguidelines-special-member-functions and hicpp-special-member-functions). Initialize the ordered_map field in the regression test struct so GCC effective-C++ stops flagging Example_5122 with a missing member initializer. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Suppress redundant-member-init lint on Example_5122::c The empty brace-init on c{} is required by GCC -Weffc++ to mark the member as initialized in the synthesized default constructor, but clang-tidy readability-redundant-member-init flags the same line because ordered_map already has a default constructor. The two checks pull in opposite directions, so add a targeted NOLINT to keep both happy. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Address review: strong exception safety in copy-assign, simplify move-assign noexcept Copy assignment now constructs a temporary copy before move-assigning the Container subobject, preserving *this if the copy throws. Move assignment uses std::is_nothrow_move_assignable<Container> for a cleaner noexcept specifier, matching the style of the move constructor. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Restore self-assignment check in copy-assign to satisfy cert-oop54-cpp clang-tidy's cert-oop54-cpp flagged the previous revision because it could not recognize the implicit self-safety of the copy-then-move pattern. Restore the explicit `if (this != &other)` guard — strong exception safety is preserved since the temporary copy is still constructed before the move-assign of the Container subobject. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Address review: add explicit self-assignment and move-assignment tests for ordered_map Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Address review: gate -Wself-assign-overloaded suppression on Clang version -Wself-assign-overloaded was introduced in Clang 7. Older Clang versions fail the build with "unknown warning group" when the suppression pragma references it unconditionally. Use __has_warning inside an __clang__ branch so the suppression is only emitted on Clang versions that recognize the warning. The inner check stays inside the __clang__ guard because GCC does not provide __has_warning and would tokenize-error on the argument list. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> * Address CI: drop unused gating macro to silence -Wunused-macros The previous attempt defined JSON_TEST_5122_SUPPRESS_SELF_ASSIGN_OVERLOADED as 0 unconditionally and then overrode it to 1 on Clang versions that recognize the warning. On those Clangs the initial define is immediately undef'd without being read, which trips Clang's -Wunused-macros under -Weverything in the ci_test_clang job. Drop the macro and gate the DOCTEST_CLANG_SUPPRESS_WARNING_PUSH/POP pragmas directly with __has_warning inside the existing __clang__ branch. Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> --------- Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com> Signed-off-by: SamareshSingh <97642706+ssam18@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
…ann#5168) Bumps [mkdocs-git-revision-date-localized-plugin](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin) from 1.5.1 to 1.5.2. - [Release notes](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases) - [Commits](timvink/mkdocs-git-revision-date-localized-plugin@v1.5.1...v1.5.2) --- updated-dependencies: - dependency-name: mkdocs-git-revision-date-localized-plugin dependency-version: 1.5.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.19.1 to 2.19.2. - [Release notes](https://github.com/step-security/harden-runner/releases) - [Commits](step-security/harden-runner@a5ad31d...9ca718d) --- updated-dependencies: - dependency-name: step-security/harden-runner dependency-version: 2.19.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
* Fix: Add GCC diagnostic pragmas for C++ modules support (issue nlohmann#5103) Signed-off-by: hariomphulre <hariiomphullre@gmail.com> * Fix: GCC C++20 modules with __cplusplus >= 202002L check (nlohmann#5103) Signed-off-by: hariomphulre <hariiomphullre@gmail.com> Signed-off-by: hariomphulre <hariiomphullre@gmail.com> * Fix: Remove indentation from nested preprocessor directives and disable astyle preprocessor indentation Signed-off-by: hariomphulre <hariiomphullre@gmail.com> * Update amalgamated files with correct preprocessor directive indentation Signed-off-by: hariomphulre <hariiomphullre@gmail.com> * Fix GCC build for issue nlohmann#5103; refresh amalgamated header Signed-off-by: hariomphulre <hariiomphullre@gmail.com> --------- Signed-off-by: hariomphulre <hariiomphullre@gmail.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.4 to 4.35.5. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@68bde55...9e0d7b8) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.19.2 to 2.19.3. - [Release notes](https://github.com/step-security/harden-runner/releases) - [Commits](step-security/harden-runner@9ca718d...ab7a940) --- updated-dependencies: - dependency-name: step-security/harden-runner dependency-version: 2.19.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
* Add new macros for named conversions * Unit tests for the named conversion macros * Update the docs to include the new macros * Fix the documentation for the macros the correct maximum number of member variables is 63 * Fix CI tests * update the named macros * move the example files * update the explicit macros expansion * update documentation * fix documentation hiccups * astyle changes * add static analysis exceptions * change md header to explicit html to fit the length * Small corrections to docs Co-authored-by: Niels Lohmann <niels.lohmann@gmail.com> Signed-off-by: George Sedov <radist.morse@gmail.com> --------- Signed-off-by: George Sedov <radist.morse@gmail.com> Co-authored-by: Niels Lohmann <niels.lohmann@gmail.com> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
…ann#5176) * Fix for printing long doubles bug in dump_float When you use long double as a floating point type with the current version of this file and try to dump json it prints trash instead of actual number. This if-else fixes the problem. On using long double you just need to add an 'L' modifier before 'g' in format string. Signed-off-by: Kirill Lokotkov <klokotkov@ya.ru> * C++11 compatibility Signed-off-by: Kirill Lokotkov <klokotkov@ya.ru> * Shorter solution Signed-off-by: Kirill Lokotkov <klokotkov@ya.ru> * Applied amalgamate Signed-off-by: rusloker <klokotkov@ya.ru> * Add unit tests for `dump()` with `long double` in custom `basic_json` Signed-off-by: rusloker <klokotkov@ya.ru> * Fix UB in `snprintf_float` by using `%.*Lg` for `long double` Signed-off-by: rusloker <klokotkov@ya.ru> * Use `std::array` for `values` in serialization unit tests to improve type safety Signed-off-by: rusloker <klokotkov@ya.ru> * Fix brace initialization for `std::array` in serialization unit tests Signed-off-by: rusloker <klokotkov@ya.ru> * Remove comments in `snprintf_float` regarding `%Lg` usage Signed-off-by: rusloker <klokotkov@ya.ru> * Skip `long double` infinity dump assertions under Valgrind Signed-off-by: rusloker <klokotkov@ya.ru> * Clarify Valgrind bug-tracker reference in `long double` test Signed-off-by: rusloker <klokotkov@ya.ru> * Satisfy clang-tidy in `long double` infinity probe Signed-off-by: rusloker <klokotkov@ya.ru> --------- Signed-off-by: Kirill Lokotkov <klokotkov@ya.ru> Signed-off-by: rusloker <klokotkov@ya.ru> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
* 🐛 add missing overload Signed-off-by: Niels Lohmann <mail@nlohmann.me> * 🎨 fix amalgamation Signed-off-by: Niels Lohmann <mail@nlohmann.me> * 🐛 fix typo Signed-off-by: Niels Lohmann <mail@nlohmann.me> * 🚨 fix warning Signed-off-by: Niels Lohmann <mail@nlohmann.me> --------- Signed-off-by: Niels Lohmann <mail@nlohmann.me> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
* Added NLOHNMANN_JSON_SERIALIZE_ENUM_STRICT
- duplicate of NLOHMANN_JSON_SERIALIZE_ENUM
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* Added failing tests for NLOHMANN_JSON_SERIALIZE_ENUM_STRICT
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* modified NLOHMANN_JSON_SERIALIZE_STRICT to throw
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* added documentation and changed readme to include NLOHMANN_JSON_SERIALIZE_ENUM_STRICT
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* ran amalgamate
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* docs(macros): add page for JSON_SERIALIZE_ENUM_STRICT
- added page to nav
- added links to new page where appropriate
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* refactor(macros): make JSON_SERIALIZE_ENUM_STRICT use JSON_THROW
- added templated wrapper function to fix scope error in calling JSON_THROW
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* refactor(macros): make NLOHMANN_SERIALIZE_ENUM_STRICT use error code 410
- added error code 410 to docs
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* tests(macros): add test for to_json with enum value not mentioned
in mapping for NLOHMANN_JSON_SERIALIZE_ENUM_STRICT
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* Apply suggestions from code review
Co-authored-by: Niels Lohmann <niels.lohmann@gmail.com>
Signed-off-by: Caillin Nugent <nugentcaillin@gmail.com>
* fix(macro): prevent compilation error with -Werror and -Wunused-parameter
with NLOHMANN_JSON_SERIALIZE_ENUM_STRICT
- casted exception to void to avoid warning
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* fix(docs): add link to NLOHMANN_SERIALIZE_ENUM_STRICT docs to exception page
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* docs(macros): add example of exception throwing for NLOHMANN_JSON_SERIALIZE_ENUM_STRICT
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
* refactor(macros): add more in-depth error message to NLOHMANN_JSON_SERIALIZE_ENUM_STRICT
- changed error message to follow style of nlohmann#4989
- made description of throw wrapper more general
- updated tests and example of exceptions
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
---------
Signed-off-by: Caillin Nugent <caillinn@student.unimelb.edu.au>
Signed-off-by: Caillin Nugent <nugentcaillin@gmail.com>
Co-authored-by: Niels Lohmann <niels.lohmann@gmail.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
…ohmann#5183) Signed-off-by: Niels Lohmann <mail@nlohmann.me> Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
Signed-off-by: Vaibhav Sharma <48472541+GhostVaibhav@users.noreply.github.com>
This PR builds upon the previous PR opened for the same issue and updates the relevant files in the relevant places for the same behaviour intended as in the original PR. This is the link to the original PR - #4323
make amalgamate.Read the Contribution Guidelines for detailed information.