RE:rootcint parsing oddity

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Wed Feb 24 1999 - 14:00:12 MET


Dave,

Thank you for reporting the problem. I fixed this in cint5.13.90. 

Masaharu Goto


===========================================================
Hi all,

I'm passing along an apparent rootcint oddity that Kyle Pope ran into when usi
ngroot 2.21/02 to build some of our production code.  He's distilled it down t
o a
single header file, so it should be a reasonable test case.  In a nutshell, a
base class declares a virtual function with the following signature (yes, I kn
owit's more common to say `const char *'):

        virtual void write(char const *) const;

and a derived class overrides this with the following declaration:

        void write(char const*) const;

note the lack of a space between `const' and `*' in the second signature.  Whe
n
fed this header, rootcint reports:

mynode_dict.cc:127: no matching function for call to `Bar2::write (char)'
mynode.h:23: candidates are: Bar2::write(const char *) const

It seems to have elided the `const*' completely out of the declaration in the
derived class and thinks it's looking for a signature to match `char'.

We have simple workarounds to be sure, but it might be worth a quick look to s
eeif rootcint can be taught to grok this.

Kyle's example code can be grabbed from the PHENIX computing pages:

http://www.phenix.bnl.gov/software/projects/root/FooBar.tar.gz 

Cheers,
Dave



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:29 MET