Template friends

corey taylor corey.taylor@gmail.com
Thu Feb 10 12:46:00 GMT 2005


Al,

  What line is this error thrown on and where are you instantiating?

corey


On Wed, 09 Feb 2005 10:10:31 -0800, Al Niessner
<Al.Niessner@jpl.nasa.gov> wrote:
> In the previous post I mistakenly referenced my declaration as looking
> like h<>() in 14.5.3.2 when I should have said preempt<>() in 14.5.3.1's
> example. I can also change the friend the statement to be 'friend int
> foobar<T>(A<T> &);' and it fails with the same error.
> 
> On Wed, 2005-02-09 at 09:55 -0800, Al Niessner wrote:
> > I figure my parser is wrong and g++ is correct, but I have no idea as to
> > why.
> >
> > g++ --version == 3.4.1
> >
> > Code fragment:
> >
> > template<class T> class A;
> > template<class T> int foobar(const A<T> &x);
> >
> > template<class T> class A
> > {
> >   ...
> >   friend int foobar<>(const A<T> &);
> >   ...
> > }
> >
> > gives me this:
> > error: `dim' is neither function nor member function; cannot be declared
> > friend
> >
> > So, I opened my copy of ISO 14882;2003 and read 14.5.3 and cannot find
> > what is wrong with my syntax. In fact, it looks similar to h<>() in the
> > 14.5.3.2 example. So, what is wrong with the above syntax?
> >
> --
> Al Niessner
> 818.354.0859
> 
> All opinions stated above are mine and do not necessarily reflect those
> of JPL or NASA.
> 
> --------
> |  dS  | >= 0
> --------
> 
>



More information about the Gcc-help mailing list