Persistence based on C++ reflection