Template friends

Al Niessner Al.Niessner@jpl.nasa.gov
Thu Feb 10 10:53:00 GMT 2005


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