title: expected declaration before '}' token
body: <p>I know this error message from when there is an extra { or }. But my editor does highlight brackets and shows it matches. The problem is at the last bracket right after #endif.</p>
  
  <pre><code> #ifndef PROYECTO_H
   #define PROYECTO_H
  
  
   #include&lt;stdio.h&gt;
   #include&lt;stdlib.h&gt;
   #include &lt;fstream&gt;
   #include &lt;iostream&gt;
   #include &lt;string&gt;
   #include &lt;cassert&gt;
   #include &lt;cstddef&gt;
  
  using namespace std;
  namespace lulz{
  
  template&lt;class T&gt;
  struct Contacto {
  string Cname;
  string Apellidos;
  string NumTel;
  string email;
  T sexo;
  Contacto *Proximo;
  };
  
  
  
  template&lt;class T&gt;
  class Lista {
  public:
  Lista();
  ~Lista();
  bool ContactoVacio();  
  void InsertContact(Contacto&lt;T&gt; Temp);
  void InsertPosition(Contacto&lt;T&gt; Temp, Contacto&lt;T&gt;* Posicion);
  void BuscarContact(string Name, string Lastname);
  Contacto&lt;T&gt;* BuscarPosicion(int pos);
  void Display(ofstream&amp; salida, Lista&lt;T&gt; Cabezalista);
  void Deletes();
  friend ofstream&amp; operator &lt;&lt; (ofstream&amp;salida, const Lista&lt;T&gt;&amp; Cabezalista){
  Contacto&lt;T&gt;* ContactList;
  int Pos=0;
  for(ContactList = Cabezalista.Cabeza; (ContactList != NULL) &amp;&amp; (ContactList-
  &gt;Proximo != NULL); ContactList = ContactList-&gt;Proximo)
   {
  cout &lt;&lt; ' ' &lt;&lt; Pos+1 &lt;&lt; ". " &lt;&lt; ContactList-&gt;Cname &lt;&lt; ' ' &lt;&lt; ContactList-
  &gt;Apellidos &lt;&lt; ' ';
  cout &lt;&lt; ContactList-&gt;NumTel &lt;&lt; ' ' &lt;&lt; ContactList-&gt;email &lt;&lt; ' ' &lt;&lt; 
  ContactList-&gt;sexo &lt;&lt; ' ' &lt;&lt; endl;
     Pos++; 
  }
  cout &lt;&lt; "Cantidad de nodos" &lt;&lt; ' ' &lt;&lt; Cabezalista.numNodos &lt;&lt; endl;
  return salida;
  }
  
  private:
  Contacto&lt;T&gt;* Cabeza;
  int numNodos;
  };
  
  
  
  template&lt;class T&gt;
  ifstream&amp; operator &gt;&gt;(ifstream&amp; entrada, Contacto&lt;T&gt;&amp; Temp);
  
  template&lt;class T&gt;
  bool Validacion(Contacto&lt;T&gt; Temp);
  
  void Opening(ifstream&amp; entrada);
  void Closing(ifstream&amp; entrada);
  void Menu();
  
  #endif // PROYECTO_H  
  }
  </code></pre>
  
  <p>It was running fine before I added the templates and added the implementation of the overloaded operator &lt;&lt;. Am I missing something?</p>