Hi roottalk: I'm trying to compare some classes in trees. This code shows the problem: #include <TTree.h> #include <TFile.h> template <class T> struct B { int i; }; struct C : B<void> { }; void plot_my_i() { C c, *cp(&c); TTree *t = new TTree("mytree", "Icecube", 10000); t->Branch("plot_my_i.", "C", &cp); t->Branch("against_my_i.", "C", &cp); for (int i=0; i<100; i++) { c.i=i*13; t->Fill(); } t->Draw("plot_my_i.B<void>.i:against_my_i.B<void>.i"); t->StartViewer(); } So when a class further up in the inheritance hierarchy is a template, the angle-brackets get into the branch path, the treeplayer sees them as comparisions and things dont work. I have tried intermediate typedefs to outsmart rootcint: template <class T> struct B { int i; }; typedef B<void> B_void; struct C : B_void { }; but rootcint goes around them and the typedeffed name does not appear in the branch path. Any ideas? Thanks, troy d. straszheim
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET