Hello Martina, This is a Cint limitation. You can not interpret whole STL container except for very simple case with vector. You need to pre-compile those container classes with rootcint or makecint. Then you can use them. For example, // user.h #include <vector> #include <map> #include <set> #ifdef __MAKECINT__ #pragma link C++ class vector<int>; // *1 #pragma link C++ class map<int,int>; #pragma link C++ class set<int>; // *1 #endif // *1 : If you build cintdlls , those classes are automatically // built-in. In that case, you can omit those lines. $ makecint -mk makefile -dl user.dll -H user.h $ make -f makefile $ cint user.h cint> . cint> map<int,int> m cint> .... Please refer to documentation for more detail. Thank you Masa Goto ----- Original Message ----- From: "Schaefer Martina" <schaefer@lpsc.in2p3.fr> To: <roottalk@pcroot.cern.ch> Sent: Friday, May 02, 2003 8:57 PM Subject: [ROOT] map, vector, set, list,... > Hi, > > i have another question, I want to use maps and vectors in a root macro. > > For my vector everything is fine: > root [0] #include<vector> > root [1] vector<int> v > root [2] v.push_back(5) > root [3] v[0] > (vector<int>::reference)5 > > For the list also. > > but for my map: > root [0] #include<map> > root [1] map<int,int>m > Error: Symbol map is not defined in current scope > FILE:/tmp/file9Stzio_cint LINE:1 > Error: Symbol int,int is not defined in current scope > FILE:/tmp/file9Stzio_cint LINE:1 > Error: Symbol m is not defined in current scope FILE:/tmp/file9Stzio_cint > LINE:1 > (const int)0 > *** Interpreter error recovered *** > > and for the set: > root [0] #include<set> > root [1] set<int> s > this gives a segmentation violation! > > Can you help me? > > Thank you, > > Martina > >
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET