Mam kod, który obecnie przechodzi wokół wielu (czasami zagnieżdżonych) struktur i tablic C (lub C++ Plain Old Data).Konwersja między strukturami C (C++ POD) i google protobufs?
Chciałbym konwertować te do/z google protobufs. Mógłbym ręcznie napisać kod, który konwertuje pomiędzy tymi dwoma formatami, ale generowanie takiego kodu byłoby mniej podatne na błędy. Jaki jest najlepszy sposób na zrobienie tego? (To byłoby łatwe w języku z wystarczającą introspekcją do iterowania nazw zmiennych członkowskich, ale to jest kod C++, o którym mówimy)
Jedną z rzeczy, którą rozważam jest pisanie kodu Pythona, który analizuje C-style a następnie wypluwa plik .proto, wraz z kodem C, który kopiuje od członka do elementu (w dowolnym kierunku) dla wszystkich typów, ale może jest lepszy sposób ... lub może istnieje inny IDL, który już może generować :
- .h plik zawierający wszystkie zagnieżdżonych typów
- plik .proto zawierające równoważniki
- .c fi le z funkcji, które kopiują obu kierunkach między struktur C++, który generuje plik .proto i strukturach zdefiniowanych w pliku .h
Dzięki za odpowiedź. Nie sądzę, że klasa C++ może iterować poprzez własne zmienne składowe, czyż nie? Próbuję uniknąć konieczności utrzymywania wielu fragmentów kodu, które przechodzą przez zakodowane pola struktury. –