Hi, Is there any archive place for roottalk ? I've lost the last answer for a message about templates with rootcint and I get the following error: cxx -w -g -I/virgoApp/Fr/v2.30/src -I/virgoa1_3/xavier/root/include -I../src -c ../src/MyCanvasDict.cxx -o ../obj/MyCanvasDict.o cxx: Error: ../src/MyCanvasDict.cxx, line 471: In this statement, the argument list "R__b>>ListText" matches no "operator >>". R__b >> ListText; ------^ cxx: Error: ../src/MyCanvasDict.cxx, line 475: In this statement, the argument list "R__b<<ListText" matches no "operator <<". R__b << ListText; MyCanvasDict.cxx is created by: rootcint MyCanvasDict.cxx -c MyCanvas.h Here follow the code of MyCanvas.h #ifndef __MyCanvas__ #define __MyCanvas__ ////////////////////////////////////////////////////////////////////////// // // // MyCanvas // // // // // // // ////////////////////////////////////////////////////////////////////////// #include "TCanvas.h" #include "MyText.h" #include "List.h" class MyCanvas : public TCanvas{ private: List<MyText> *ListText; public: ~MyCanvas(); MyCanvas(); ClassDef(MyCanvas,1) // MyCanvas structure }; #endif ***************************** MyText.h #ifndef __MyText__ #define __MyText__ ////////////////////////////////////////////////////////////////////////// // // // MyText // // // // Sensible Text // // // ////////////////////////////////////////////////////////////////////////// #include "TText.h" class MyText : public TText { private: double val; public: ~MyText(); MyText(); MyText(Coord_t x,Coord_t y,const Text_t *text,double valr=0); virtual void Action(); // *MENU* virtual void SetVal(double valr) {val=valr;} // *MENU* ClassDef(MyText,1) //MyText structure }; #endif ********************** List.h #ifndef __List__ #define __List__ ////////////////////////////////////////////////////////////////////////// // // // List // // // // // // // ////////////////////////////////////////////////////////////////////////// #include "MyMaths.h" template<class Item> class enhancedItem{ private: Item item; enhancedItem *next; enhancedItem *previous; public: ~enhancedItem(); enhancedItem(const Item&t,enhancedItem<Item> *prev):item(t) {next=NULL;previous=prev;} }; template<class Item> class List{ private: enhancedItem<Item> *first; enhancedItem<Item> *last; enhancedItem<Item> *current; public: ~List(); List(){first=NULL;last=NULL;current=NULL;} Reset(){current=first;} Plus(){if (current != NULL) current=current->next;} enhancedItem<Item> *Current(){return current;} Add(Item &t); Remove(enhancedItem<Item> *t); Boolean is_at_end(){return current==NULL ? true : false;} }; #endif Thanks for all possible idea. -- xavier@virgoa4.in2p3.fr De chacun selon ses forces, a chacun selon ses besoins. Au fait, tous mes propos n'engagent que moi et aucunement l'in2p3 ni le CNRS d'ailleurs.
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:19 MET