Próbowałem dostarczać pobierające klasy klasy A
dla mojej nieczłonkowskiej funkcji serialize()
, ponieważ dostęp do członków jest prywatny.Uzyskaj prywatnych członków danych dla nieinwazyjnej serializacji wzmocnienia C++
Niestety wykonanie powtarza mi uncaught exception of type boost::archive::xml_archive_exception - Invalid XML tag name
gdy próbuję użyć pobierające albo GetRef()
lub GetId()
.
Działa dobrze, jeśli mam bezpośredni dostęp do m_id
, gdy jest on publiczny.
Czy są na to dobre sposoby?
dodał podejście "best-of-obie-światy", która nie łamie enkapsulacji: ** [Live On Coliru] (http://coliru.stacked-crooked.com/a/5d76b1aa22076a77) **. – sehe
wow. to naprawdę fajna odpowiedź, oferująca różne rozwiązania z ich zaletami i wadami. Dokładnie to, na co miałem ochotę;). Dziękuję Ci ! Szkoda, nie mogę głosować dwa razy ... dam 1/i 3/a spróbować! – coincoin
Jak zawsze, kompletna wspaniała odpowiedź. Ponadto, nie naruszając hermetyzacji i prawdopodobnie całkowitego naruszenia zaufania [pokazuje to] (http://coliru.stacked-crooked.com/a/4424c219ee37aa20) serializowanie prywatnych zmiennych członków. Jak najlepiej, mogę powiedzieć, że jest zgodny ze specyfikacją. Niestety musiałem użyć tego w kontaktach z bibliotekami stron trzecich.): –