Dear ROOTers, I am trying to read some old files, containing classes with STL containers, on a new system with a new root version (details below). It seems that there are problems with the dictionary information which have to do with the allocators used in STL containers. When opening a file (written with v3.03.09), warnings are given like: Warning in <TClass::TClass>: no dictionary for class vector<SPE_Hit,__malloc_alloc_template<0> > is available (where SPE_Hit is some class of mine) I have understood that recently the dictionary generator (and/or gcc) has changed to use 'allocator<X>' as the allocator for STL containers of X, in stead of the previously used '__malloc_alloc_template<0>'. This , I think, explains why no information for vector<SPE_HIT,__malloc_alloc...etc> is availble in my newly compiled library with dictionary information. Is there any trick that one could think of to still be able to read these files while using recent versions of root/rootcint? Or perhaps my diagnosis is totally wrong? [one thing I tried is to use everywhere __malloc_alloc_template<0> in the class definitions... that works, but it breaks a lot of other codes, since these codes use the type vector<X> (which defaults to vector<X, allocator<X>> now) and this cannot be converted to/from vector<X, __malloc_alloc_template<0> >.] Any help would be greatly appreciated, Thanks, Aart. files written with redhat 6.2 gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) ROOT version 3.03/09 trying to read with gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113) ROOT Version 3.05/05 -- ::Aart Heijboer, ::NIKHEF, Nat. Inst. for Nuclear and High Energy Physics ::Phone: +31 20 592 2073 ::aart.heijboer@nikhef.nl
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET