Hi, I'm trying to convert a GUI (compiled program) to the signal/slot communication mechanism. The signals being not catched by the slots, I was wondering if a dictionnary is necessary to use signal/slots. This brings me to a second question, concerning rootcint. Trying to generate the dictionnary for this program's classes, I run into the following problems : - maps don't look to be correctly handled by rootcint. I have a map<string, TCanvas*> and a map<string, bool>, and I get the following message for both of them when compiling the dictionnary : Dict.cc:1123: `R__t2' undeclared (first use this function) Dict.cc:1123: (Each undeclared identifier is reported only once Dict.cc:1123: for each function it appears in.) I had a look in the generated code : R__t2 is not declared, and I found some other strange uses of these maps too, eg : R__b << int(fDetInTree.size()); map<string,bool>::iterator R__k; for (R__k = fDetInTree.begin(); R__k != fDetInTree.end(); ++R__k) { static TString R__str = (*R__k).c_str(); // should be static TString R__str = ((*R__k).first).c_str(); ? R__str.Streamer(R__b); } - streams also seem to be a problem Dict.cc:1130: no match for `TBuffer & >> ifstream *&' Am I doing a mistake ? Are these types currently supported by root ? Thanks, Colin Here are the messages I get when the dictionnary is generated and compiled : /usr/local/root/3.01-00/root/bin/rootcint -f Dict.cc -c \ -Wall -O2 -I/usr/local/root/3.01-00/root/include -g -I../../src -I../../expat/xmlparse -ansi Plane.h Plane1V.h PlaneTrigTime.h PlaneDriftChamber.h PlaneFiberHodo.h PlaneMicromegas.h PlaneTrigHodo.h PlaneMwpc.h PlaneScifi.h PlaneBMS.h PlaneRICH1.h MainFrame.h StartFrame.h Monitor.h LinkDef.h Warning: File "Monitor.h" already loaded *** Datamember Plane1V::fChannelKept: no size indication! *** Datamember Plane1V::fChannelKept: pointer to fundamental type (need manual intervention) *** Datamember Plane1V::fTimeKept: no size indication! *** Datamember Plane1V::fTimeKept: pointer to fundamental type (need manual intervention) *** Datamember Plane1V::fChannel: no size indication! *** Datamember Plane1V::fChannel: pointer to fundamental type (need manual intervention) *** Datamember Plane1V::fTime: no size indication! *** Datamember Plane1V::fTime: pointer to fundamental type (need manual intervention) c++ -I. -Wall -O2 -I/usr/local/root/3.01-00/root/include -g -I../../src -I../../expat/xmlparse -ansi -c Dict.cc -o Dict.o Dict.cc: In method `void MainFrame::Streamer(class TBuffer &)': Dict.cc:853: warning: `char * R__t' might be used uninitialized in this function Dict.cc:854: warning: `Char_t * c' might be used uninitialized in this function Dict.cc: In method `void Monitor::Streamer(class TBuffer &)': Dict.cc:1123: `R__t2' undeclared (first use this function) Dict.cc:1123: (Each undeclared identifier is reported only once Dict.cc:1123: for each function it appears in.) Dict.cc:1130: no match for `TBuffer & >> ifstream *&' /usr/local/root/3.01-00/root/include/TBuffer.h:278: candidates are: TBuffer::operator >>(Char_t &) /usr/local/root/3.01-00/root/include/TBuffer.h:340: TBuffer::operator >>(UChar_t &) /usr/local/root/3.01-00/root/include/TBuffer.h:285: TBuffer::operator >>(Short_t &) ... and so on .... Colin Bernet Tel. +49-6131/39-23192 Fax +49-6131/39-22964
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:44 MET