title: error: no match for call to '(const std::basic_string<char>) ()'
body: <p>I have a map which maps a pair of two classes to a simple string. "FirstCollection" and "SecondCollection" are classes, "myCollecttion" is an object of one of them.
  But when iterating over the map I'm getting a compile error:</p>
  
  <p>error: no match for call to '(const std::basic_string) ()' </p>
  
  <pre><code>typedef std::map &lt;
      std::pair &lt; Collection, Envelope::Envelope &gt;
    , std::string &gt; NameMap;
  
  NameMap globalNameMap = map_list_of
          ( std::make_pair ( FirstCollection, Envelope::A ), "Something")
          ( std::make_pair ( SecondCollection, Envelope::B ), "Another thing")
  
  
      NameMap::const_iterator iter
              = globalNameMap.find( std::make_pair ( myCollection, myEnvelope ));
  
      if ( iter == globalNameMap.end() )
      {
            parent-&gt;setName("anything");
      } else {
            parent-&gt;setName(iter-&gt;second());
      }
  </code></pre>
  
  <p>Error in this line: <code>parent-&gt;setName(iter-&gt;second());</code></p>
  
  <p>Any suggestions?</p>