Hello Axel, This is a stripped down version of the header file. The error message I posted earlier is misleading. Apparently, pilot error. The header file below has all references to STL's vector removed and this works for me. If I remove the comments and do rootcint -f AFit.Dict.cxx -c AFit.h I get an abort. Phillipe Canal apparently has no problems with getting it through rootcint and compiling the dictionaries. I am going to work around it by using ROOT's collection classes instead of the STL containers. It's painful since I am familiar with the STL and I find ROOT containers missing the basic object support like copy and assign. I will try in my spare time to chase down the difference between Phillipe's setup and mine. If you get it to go, I'd like to know as well. Thanks! Ken /* AFit.h - Apr 2003, Ken Teh */ #ifndef _AFit_h #define _AFit_h //#include <vector> #include "TVector.h" #include "TH1.h" class AFit { private: struct Triplet { Axis_t xl; Axis_t xu; Axis_t w; Triplet(Axis_t a1=0, Axis_t a2=0, Axis_t a3=0) : xl(a1), xu(a2), w(a3) {} ~Triplet() {} }; Int_t fverbose; // std::vector<Double_t> fla; // std::vector<Double_t> fpa; // std::vector<Double_t> fwa; TVector fresult; AFit(const AFit&) {} AFit& operator=(const AFit&) {} // std::vector<AFit::Triplet> arrayranges(const Char_t*); // std::vector<Double_t> arraylines(const Char_t*); Int_t dofit(const Int_t); public: AFit(Int_t printlevel=-1) : fverbose(printlevel), // fla(20), fpa(20), fwa(20), fresult(1) { fresult(1) { fla.clear(); fpa.clear(); fwa.clear(); fresult.Zero(); } ~AFit() { delete fg; } Int_t calibrate(TH1 *h, const Char_t *ranges, const Char_t *lines, UInt_t ord=2); Int_t operator()(TH1 *h, const Char_t *ranges, const Char_t *lines, UInt_t ord=2) { return calibrate(h, ranges, lines, ord); } TVector getresult() const { return fresult; } ClassDef(AFit, 0) }; #endif
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET