You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT should not throw an exception when the json instance is empty and should use the default values of the member fields
Reproduction steps
run the Minimal code example and get the exception
Expected vs. actual results
don't expect to get exception with an empty JSON
expect that foo member fields are filled with they default values
Minimal code example
class Foo {
public:
NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Foo, a, b)
Foo() = default;
int a{10};
std::string b{"bar"};
void log() {
std::cout <<"a: " << a << std::endl; std::cout << "b: " << b << std::endl; }};// with an empty json, an exception is thrown instead of getting default valuesstatic void JsonTest_empty_json() { nlohmann::json json{}; auto foo = Foo(json); foo.log();}int main(int argc, char **argv) { JsonTest_empty_json(); return 0;}
Description
NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT should not throw an exception when the json instance is empty and should use the default values of the member fields
Reproduction steps
run the Minimal code example and get the exception
Expected vs. actual results
don't expect to get exception with an empty JSON
expect that foo member fields are filled with they default values
Minimal code example
Error messages
No response
Compiler and operating system
clang++ / C++17 / Windows OS
Library version
ref: v3.11.2 - commit: 7d2f9ad500cf062394040f44d006791ff7cfc1c1
Validation
develop
branch is used.The text was updated successfully, but these errors were encountered: