nlohmann / json

JSON for Modern C++
https://json.nlohmann.me
MIT License
41.25k stars 6.57k forks source link

nlohmann::ordered_json: not compatible with NLOHMANN_DEFINE_TYPE_INTRUSIVE #4377

Open 17steen opened 1 month ago

17steen commented 1 month ago

Description

If a type is defined with NLOHMANN_DEFINE_TYPE_INTRUSIVE, it cannot directly be used with ordered_json.

Reproduction steps

#include <nlohmann/json.hpp>

struct my_type_t {
       std::string key;

       NLOHMANN_DEFINE_TYPE_INTRUSIVE(my_type_t, key)
};

int main()
{
    auto thing = my_type_t{};

    nlohmann::json my_json = thing;
    // doesn't compile
    nlohmann::ordered_json my_ordered_json = thing;

    return 0;
}

Expected vs. actual results

I would expect nlohmann::ordered_json my_ordered_json = custom_type; to compile

Minimal code example

No response

Error messages

No response

Compiler and operating system

gcc 13.1

Library version

trunk on godbolt

Validation