Przeciążanie operatora <<

0

Witam, nie wiem gdzie mam błąd:

 #include <iostream>
using namespace std;

template <typename rodzaj>
struct liczba
{
	rodzaj x;
	ostream& operator << (ostream& wy, const liczba<rodzaj> &w);
};

template <rodzaj> ostream&operator<<(ostream& wy, const liczba<rodzaj> &w)
{
	wy << w.x;
	return wy;
}

int main()
{
	liczba<int> kl;
	kl.x = 1;
	clog << kl;
}

Dopiero poznaję szablony i średnio wiem jak ich używać

1
 template <typename rodzaj>
struct liczba
{
    rodzaj x;
    friend ostream& operator << (ostream& wy, const liczba<rodzaj> &w){
      return wy<<w.x;
    }
};

Wywołanie funkcji inline się skompiluje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1