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, botów: 0