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.