jak to działa ? przypisanie dowolnego typu do obiektu

0

Jak to jest zrobione że do obiektu typu nlohmann::json jestem w stanie przypisać dowolny obiekt/strukturę ?

nlohmann::json nie zna budowy mojej struktury ,ale zaimplementowanie funkcji
void to_json(nlohmann::json& j, const struct_test1& p)
i już działa

struct struct_test1
{
    int int1;
    std::string string1;        

};

void to_json(nlohmann::json& j, const struct_test1& p) {
    j = nlohmann::json{{"int1", p.int1}, 
                {"string1", p.string1}};
}

struct_test1 s1{1234,"12345");
nlohmann::json j = s1;


Chciałbym zrozumieć jak to działa !

4

ADL

Domyślną metodą serializowania jest zawołanie to_json z przestrzeni nazw typu serializowanego https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp#L3114

0

Dokładnie tak samo jak stworzenie:
ostream &operator<<(ostream &sout,const struct_test1 &p) { return sout<<p.int1<<' '<<p.string1; }

1 użytkowników online, w tym zalogowanych: 0, gości: 1