Hello again! Ole Streicher writes: > What I could imagine is that "root" has problems with namespaces; I > declared the constructor of MyRun as > my::MyRun::MyRun(std::string, int, std::string = "none"); > but Root thinks it is > my::MyRun::MyRun(my::string,int,my::string=none); I tried to debug this a bit and I found out that it is probably a problem of rootcint. When I compile the minimal class definition #include <string> namespace my { class MyClass { public: int GetMe(std::string); ClassDef(MyClass, 1) }; } rootcint produces a function "static void G__setup_memfuncmycLcLMyClass(void)" that contains a line G__memfunc_setup("GetMe",466,G__mycLcLMyClass_GetMe_0_0,105,-1,-1,0,1,1,1,0,"u 'string' - 0 - -",(char*)NULL,(void*)NULL,0); Here one can see, that "string" lacks the "std::" namespace. If I write something from my own namespace as parameter, rootcint puts the name including my namespace here. How shall I proceed here? The other problem I found is that "rootcint" seems to not accept other names for the LinkDef file than LinkDef.h: $ cp LinkDef.h LD.h $ rootcint -f MyClassDict1.cpp -c MyClass.h LinkDef.h $ rootcint -f MyClassDict2.cpp -c MyClass.h LD.h $ ls -l MyClassDict?.cpp -rw-r--r-- 1 ole ole 13517 Sep 2 15:42 MyClassDict1.cpp -rw-r--r-- 1 ole ole 6922 Sep 2 15:42 MyClassDict2.cpp Why are they different? Is this a bug or a feature? Ole
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:06 MET