We are trying to use std::map in a ROOT macro and it is not working. A similar example using std::vector works fine. Is std::map supposed to work at all? With the test script below, I get a variety of results, ranging from "Error: class,struct,union or type string,int,std not defined" to a core dump, depending on which include file I include: "map", "map.h", "_map", etc. I get similar results with root_v3.10.02 and with a (not so recent) CVS snapshot. [olchansk@send root]$ cat map.C #include <string> #include <map> #include <function> typedef std::string sss; typedef std::less<std::string> cmp; //typedef std::map<sss, int, cmp> mmm; int map() { std::map<std::string, int, std::less<std::string> > age; age["Fred"] = 42; // Fred is 42 years old age["Barney"] = 37; // Barney is 37 cout << age["Fred"] << endl; } And results from running it: [olchansk@send root]$ echo $ROOTSYS /triumfcs/trshare/olchansk/root/root_v3.10.02_RH9 [olchansk@send root]$ $ROOTSYS/bin/root -l map.C root [0] Processing map.C... Error: class,struct,union or type string,int,std not defined FILE:map.C LINE:13 Error: class,struct,union or type string,int,std not defined FILE:map.C LINE:13 Error: class,struct,union or type string,int,std not defined FILE:map.C LINE:13 Error: Symbol less<std::string> is not defined in current scope FILE:map.C LINE:13 Error: Symbol age is not defined in current scope FILE:map.C LINE:13 (const int)0 *** Interpreter error recovered *** -- Konstantin Olchanski Data Acquisition Systems: The Bytes Must Flow! Email: olchansk-at-triumf-dot-ca Snail mail: 4004 Wesbrook Mall, TRIUMF, Vancouver, B.C., V6T 2A3, Canada
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET