Окей, тогдапоставлю вопрос по другому - мне надо рекурсивно обойти структуру данных, и что то сделать с ее полями, классом из вне.
Я бы трейты юзал. Потому что если у тебя уже есть готовые контейнеры, а в них сериализацию не запихнуть (stl, 3rd-party), то только снаружи определять