archives of roottalk ?

Grave Xavier (xavier@lapp.in2p3.fr)
Wed, 28 May 1997 14:00:54 +0200


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.