Hola no tengo mucha experiencia programando en c++ y me surgen dudas respecto al orden en que se usan determinados operadores como son los de referencia y desreferencia. He visto por la web el siguiente código:
 
// Class CFir definition
template<class coef_T, class data_T, class acc_T>
class CFir {
    protected:
    static const coef_T c[N];
    data_T shift_reg[N-1];
 
    private:
 
    public:
    data_T operator()(data_T x);
     template<class coef_TT, class data_TT, class acc_TT>
     friend ostream&
     operator<<(ostream& o, const CFir<coef_TT, data_TT, acc_TT> &f);
};
 
En las dos últimas líneas de código se observa que el operador de referencia '&', va inmediatamente después del identificador de la clase ostream y no inmediatamente delante de la variable que se declara, con lo cual mi pregunta es ¿qué diferencia hay entre las dos líneas de código siguientes?
 
     friend ostream&
     operator<<(ostream& o, const CFir<coef_TT, data_TT, acc_TT> &f);
 
     friend ostream  &
     operator<<(ostream &o, const CFir<coef_TT, data_TT, acc_TT> &f); 
  
 
 

