title: Trying to build muParser: error: explicit instantiation of 'std::basic_ostream but no definition available
body: <p>Im trying to build muParser on the mac, it worked until I upgraded XCode to 4.4 which updated gcc. Now I get the following line of code generating the error which I don't understand:</p>
  
  <pre><code>mu::console() &lt;&lt; _T(" \"") &lt;&lt; val.GetAsString() &lt;&lt; _T("\" ");
  
  ../muparser/src/muParserBase.cpp:1823:   instantiated from here
  ../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;, const std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]' but no definition available
  ../muparser/src/muParserBase.cpp: In instantiation of 'std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;, const std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]':
  ../muparser/src/muParserBase.cpp:1823:   instantiated from here
  ../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;, const std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]' but no definition available
  ../muparser/src/muParserBase.cpp: In instantiation of 'std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;, const std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]':
  ../muparser/src/muParserBase.cpp:1823:   instantiated from here
  ../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;, const std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]' but no definition available
  ../muparser/src/muParserBase.cpp: In instantiation of 'std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;, const std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]':
  ../muparser/src/muParserBase.cpp:1823:   instantiated from here
  ../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;, const std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]' but no definition available
  </code></pre>
  
  <p><code>mu::console()</code> is define as:</p>
  
  <pre><code>inline std::ostream&amp; console()
  {
    return std::cout;
  }
  </code></pre>
  
  <p><code>_T</code> is <code>#define _T(x) x</code></p>
  
  <p>and <code>GetAsString</code></p>
  
  <pre><code>  const TString&amp; GetAsString() const
    {
      return m_strTok;
    }
  </code></pre>
  
  <p><code>TString</code> is a <code>std::string</code></p>
  
  <p>It is the call to GetAsString that causes the problem. Any idea how to fix it?</p>