title: There are no arguments that depend on a template parameter
body: <p>I am trying to do the following:</p>
  
  <pre><code>template &lt;class T&gt;
  std::ifstream&amp; operator&gt;&gt; (std::ifstream&amp; fin, List&lt;T&gt; l)
  {
      T temp;
      l.resize(0);
      fin &gt;&gt; ignore(1,'\t');
      for(ListIterator&lt;T&gt; i=l.begin();i!=l.end();i++)
      {
          fin &gt;&gt; ignore(1,'\t') &gt;&gt; temp;
          l.push_back(temp);
      }
      return fin;
  }
  </code></pre>
  
  <p>I have to read all the contents from a file. Each field is separated by <code>'\t'</code> character, so I have to ignore the <code>'\t'</code> characters.</p>
  
  <p>The error log is the following:</p>
  
  <pre><code>/home/ramy/Documents/C++/Prova/Util.h||In function ‘std::ifstream&amp; Util::operator&gt;&gt; (std::ifstream&amp;, Util::List&lt;T&gt;)’:|
  /home/ramy/Documents/C++/Prova/Util.h|431|error: there are no arguments to ‘ignore’ that  depend on a template parameter, so a declaration of ‘ignore’ must be available|
  /home/ramy/Documents/C++/Prova/Util.h|431|note: (if you use ‘-fpermissive’, G++ will  accept your code, but allowing the use of an undeclared name is deprecated)|
  ||=== Build finished: 1 errors, 0 warnings ===|
  </code></pre>