non template friend function and overloading

Markus Trippelsdorf markus@trippelsdorf.de
Sun Mar 26 21:22:00 GMT 2017


On 2017.03.26 at 21:56 +0300, Shmuel Hanoch wrote:
> Hi,
> 
> I am trying to declare a (non template) friend function inside a template class.
> 
> This code compiles just fine:
> 
> #include <iostream>
> 
> template <class T>
> struct Foo;
> 
> template <class T>
> std::istream& operator>> (std::istream& is, Foo<T>& x);
> 
> template<class T>
> struct Foo
> {
>     //Foo operator>>(int x) const;
>     friend std::istream& operator>> <>(std::istream& is, Foo<T>& x);
> };
> 
> 
> But if I remove the comment from the other overload, I get this error message:
> 
> error: declaration of ‘operator>>’ as non-function
> 
> Is this overload illegal?

Sorry, but this is not the right place for general C++ questions.
(There is nothing gcc specific in it.)
Please use another forum like stackoverflow.

-- 
Markus



More information about the Gcc-help mailing list