Не понимаю, почему не работает потоковый вывод

Вылетает следующая ошибка: Ошибка LNK2019 ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std::char_traits > & __cdecl operator«(class std::basic_ostream<char,struct std::char_traits > &,struct Odpisok const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABU?$Odpisok@H@@@Z) в функции _main. Шаболды C:\Users\Казимир\source\repos\Шаболды\Шаболды\Шаболды.obj 1.

Помогите пожалуйста, ниже приведён фрагмент моего кода:

#include "Odpisok.h"
    #include <iostream>
    using std::ostream;
    template <typename I>
    ostream& operator « (ostream& w, const Odpisok<I>& x)
    {
    if (x != 0)
    w « x.inf() « x.Next();
    else
    w « "_";
    return w;
    };
     
    #pragma once
    #include <iostream>
    using std::ostream;
    template <typename I>
    class Odpisok;
    
    template <typename I>
    struct Banka
    {
    I x;
    Odpisok<I> next;
    Banka()
    {
    x = 0;
    next = 0;
    }
    Banka(I a,const Odpisok<I>& b)
    {
    x = a;
    next = b;
    }
    ~Banka()
    {
    }
    public:
    friend Odpisok<I>;
    };
    
    template <typename I>
    struct Odpisok
    {
    Banka<I>* a = 0;
     
    I inf() const
    {
    return a->x;
    }
    Odpisok& Next() const
    {
    return a->next;
    }
     
    };

Ответы (0 шт):