Greetings roottalk -- Thanks a million for the hint on plotting an stl vector. It works like a charm, has helped a lot. I'm still working on building the most generic interface possible between our internals and ROOT, and I have started to get an intermittent error which I think may pop up only when I instantiate templates in certain ways. I have two base classes: class BaseLeft { vector<int> v; } and class BaseRight { vector<int> v; } and then a child class that inherits from both class Child : public BaseLeft, public BaseRight { vector<float>, etc }; which also contains a vector of ints, a vector of floats and some other stuff. No vectors of vectors or anything like that. This class "Child", is given as the argument to a template class that inherits from TObject: template <class T> RootContainer : public TObject { ... }; and in my RootContainerLinkDef.h I have all the instantiations #pragma link C++ class RootContainer<Child>+; #pragma link C++ class Child+; and then the others, in order, are BaseLeft, BaseRight, vector<int>, and vector<float>. I branch the Child inside the RootContainer and write it to a TTree inside a TFile: works fine. When I try to read it back in with a macro, though, I get Limitation: Can't instantiate precompiled template vector<int,allocator<int> > FILE:doit.C LINE:11 The strange thing is that this worked a minute ago, and I cannot figure out what I have changed. Any hints? I am thinking that it may have something to do with the order of the pragmas in RootContainerLinkDef.h. How does root handle precompiled and non-precompiled templates? Best, Troy Straszheim
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET