Persistent Data Structures for C++