Hi Fons
Yes, you're right, of course. :-)
The effect I was trying to achieve was to have a few public const
members in the class, which means I don't need to have accessor
functions for those memebers.
Those const members caused rootcint to stumble, which is a bug, I think.
Cheers, and as always thanks for the help, it is much appreciated :-)
Conrad
On Sat, 2002-10-19 at 03:35, Fons Rademakers wrote:
> Also note that several compilers will correctly complain about "const"
> being redundant in an argument of type "Int_t". These arguments are
> passed by value and will never change:
> TFileInfo(const char *my_name, const Int_t my_mode, const Int_t my_size,
> const Int_t my_mtime)
>
> Cheers, Fons.
>
>
>
> On Fri, 2002-10-18 at 08:22, Rene Brun wrote:
> > Hi Conrad,
> >
> > Do:
> > rootcint -f junk.cxx -c TFileInfo.h LinkDef.h
> > g++ -c junk.cxx `root-config --cflags`
> >
> > with LinkDef.h the file below
> > //LinkDef.h
> > #ifdef __CINT__
> >
> > #pragma link off all globals;
> > #pragma link off all classes;
> > #pragma link off all functions;
> >
> >
> > #pragma link C++ class TFileInfo+;
> >
> > #endif
> > //end LinkDef.h
> >
> > However with your class, there is still a problem with
> > the data member of type TString (would be the same with STL string).
> > Remove the "const" specifier for this member for the time being.
> >
> > Rene Brun
> >
> >
> > On 17 Oct 2002, Conrad Steenberg wrote:
> >
> > > Hi Philippe
> > >
> > > Yes, sorry, this was with 3.03/09.
> > >
> > > Conrad
> > >
> > > On Thu, 2002-10-17 at 14:13, Philippe Canal wrote:
> > > > Hi Conrad,
> > > >
> > > > We made change on how const data member were handle in ROOT 3.03/08.
> > > > Please upgrade to a newer version and try against.
> > > >
> > > > Cheers,
> > > > Philippe.
> > > >
> > > > PS. Please remember to indicate the version of ROOT that you are using.
> > > >
> > > > -----Original Message-----
> > > > From: owner-roottalk@pcroot.cern.ch
> > > > [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Conrad Steenberg
> > > > Sent: Wednesday, October 16, 2002 10:42 AM
> > > > To: ROOT mailing list
> > > > Subject: [ROOT] Rootcint barfage
> > > >
> > > >
> > > > Hi
> > > >
> > > > I have a simple class that rootcint seems to have trouble with when
> > > > creating a dictionary file:
> > > >
> > > > class TFileInfo : public TObject {
> > > > public:
> > > > const TString name;
> > > > const Int_t mode;
> > > > const Int_t size;
> > > > const Int_t mtime;
> > > >
> > > > TFileInfo();
> > > > TFileInfo(const char *my_name, const Int_t my_mode, const Int_t my_size,
> > > > const Int_t my_mtime):
> > > > name(my_name),
> > > > mode(my_mode),
> > > > size(my_size),
> > > > mtime(my_mtime)
> > > > {}
> > > > virtual ~TFileInfo();
> > > > ClassDef (TFileInfo, 1)
> > > > };
> > > >
> > > > The error message is:
> > > >
> > > > webfiledict.C: In method `void TFileInfo::Streamer (TBuffer &)':
> > > > webfiledict.C:471: passing `const TString' as `this' argument of `void
> > > > TString::Streamer (TBuffer &)' discards qualifiers
> > > > webfiledict.C:472: could not convert `TString(this->TFileInfo::mode)'
> > > > to `TString &'
> > > > /opt/root/include/TString.h:349: in passing argument 2 of `operator>>
> > > > (TBuffer &, TString &)'
> > > > webfiledict.C:473: could not convert `TString(this->TFileInfo::size)'
> > > > to `TString &'
> > > > /opt/root/include/TString.h:349: in passing argument 2 of `operator>>
> > > > (TBuffer &, TString &)'
> > > > webfiledict.C:474: could not convert `TString(this->TFileInfo::mtime)'
> > > > to `TString &'
> > > > /opt/root/include/TString.h:349: in passing argument 2 of `operator>>
> > > > (TBuffer &, TString &)'
> > > > webfiledict.C:479: passing `const TString' as `this' argument of `void
> > > > TString::Streamer (TBuffer &)' discards qualifiers
> > > > webfiledict.C: In method `void TFileInfo::ShowMembers (TMemberInspector
> > > > &, char *)':
> > > > webfiledict.C:496: passing `const TString' as `this' argument of `void
> > > > TString::ShowMembers (TMemberInspector &, char *)' discards qualifiers
> > > >
> > > > If I remove the const qualifiers the dictionary compiles fine.
> > > >
> > > > Regards
> > > >
> > > > Conrad
> > > >
> > > > --
> > > > *-----------------------------------------*
> > > > | Conrad Steenberg |
> > > > | Caltech, Mail Code 356-48 |
> > > > | Pasadena, CA, 91125 |
> > > > | e-mail: conrad@hep.caltech.edu |
> > > > | Tel: (626) 395-8758 |
> > > > *-----------------------------------------*
> > > >
> > > >
> > > --
> > > *-----------------------------------------*
> > > | Conrad Steenberg |
> > > | Caltech, Mail Code 356-48 |
> > > | Pasadena, CA, 91125 |
> > > | e-mail: conrad@hep.caltech.edu |
> > > | Tel: (626) 395-8758 |
> > > *-----------------------------------------*
> > >
> --
> Org: CERN, European Laboratory for Particle Physics.
> Mail: 1211 Geneve 23, Switzerland
> E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
> WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:15 MET