I/O

File Format

TFile::MakeProject

Extend TFile::MakeProject to support genreflex, cases of user's data model where the 2 distincts pointers point to a single object and more cases where we are missing the StreamerInfo and need to guess whether the symbol represent an enum, a class or a namespace. To use genreflex, call MakeProject with the "genreflex" option, for example:
   file->MakeProject(libdir,"*","NEW+genreflex");
To make sure the library created by MakeProject does not double delete an object, tell the StreamerElement representing one of the pointers pointing to the object to never delete the object. For example:
   TClass::AddRule("HepMC::GenVertex m_event attributes=NotOwner");
MakeProject now implements a move constructor for each classes. For the implementation, we 'use' the 'copy constructor' until the C++ compilers properly support the official move constructor notation. Implementing a move constructor avoid having to delete and reconstruct resource during a std::vector resize and avoid the double delete induced by using the default copy constructor.

Misc.