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