Typedef with std:: containers

Dear experts,

when we updated from Root 5.10/00f to Root 5.13/06 we got a warning when we read
files with Root 5.13/06 which were written with Root 5.10/00f:

Warning in TStreamerInfo::BuildCheck:
The StreamerInfo of class CdbRooRoFolderR read from file /usr/work/gapon/snapshots/20061207/cdb_o0_registry.root
has the same version (=1) as the active class but a different checksum.
You should update the version to ClassDef(CdbRooRoFolderR,2).
Do not try to write objects with the current class definition,
the files will not be readable.

though we definitely did not touch CdbRooRoFolderR. The warning goes away if we
change the Root version of the class from 1 to 2.

Looking deeper into this one of us found that the change of the checksum comes
from a typedef in the header file of the class. It disappears if one changes

class CdbRooRoFolderR … {

typedef std::map< std::string, CdbRooRoFolderR* > FoldersMap;
typedef std::map< std::string, CdbRooRoConditionAtFolderR* > ConditionsMap;

FoldersMap _foldersMap;
ConditionsMap _conditionsMap;



class CdbRooRoFolderR … {

std::map< std::string, CdbRooRoFolderR* > _foldersMap;
std::map< std::string, CdbRooRoConditionAtFolderR* > _conditionsMap;


avoiding the typedefs.
The checksum are
ROOT version | w/ typedefs | w/o typedefs |
5.10/00f | 1620927292 | 4248336056 |
5.13/06 | 4235466622 | 4248336056 |

Is this a known effect/problem? Is it not allowed to use typedefs in classes for which
Root has to create streamers? Or is this simply a bug in the code that handles std::



Previous version of ROOT were not calculating the part of the checksum concerning stl collection in consistant way. We upgraded this portion of the code. One of the side effect is that possible appearance of those warning messages in circumstances like yours; it was not technically feasible to solve both the underlying problem and avoid your case.
However, it is perfectly safe for you to simply update your ClassVersion and it should prevent any recurrence of this issues.