title: How to read c++ errors involving templates
body: <p>I'm learning C++.  I regularly get errors that look like this</p>
  
  <blockquote>
    <p>/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/basic_string.h:1458:   instantiated from 'static _CharT* std::basic_string&lt;_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&amp;, std::__false_type) [with _InIterator = std::istream_iterator, std::allocator >, char, std::char_traits, int>, _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator]'</p>
  </blockquote>
  
  <p><strong>How do I make sense of this so that I can at least have some place to search for a solution?</strong></p>
  
  <p>In case you're interested, the original code is:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;fstream&gt;
  #include &lt;string&gt;
  #include &lt;iterator&gt;
  
  using namespace std;
  
  int main(int argc, char **argv) {
      string fileName = "example.txt";
      ifstream ifile(fileName.c_str());
  
      istream_iterator&lt;string&gt; begin(ifile);
      istream_iterator&lt;string&gt; end;
  
      string s(begin,end);
      cout &lt;&lt; s;
  }
  </code></pre>