Persistent data structures in C++