title: Error while compilation of std::map with boost::shared_ptr
body: <p>I am trying to compile my code in vs2005.
  I am using std::map and boost::shared_ptr (v1.47.0)
  My code looks something like this</p>
  
  <pre><code>struct B {
      int a;
  }
  typedef boost::shared_ptr&lt;B&gt; K;
  
  std::map&lt;const std::string, K &gt; mymap;
  
  //some code
  
  std::map&lt;const std::string, K &gt;::iterator it;
  for (it = mymap.begin(); it &lt; mymap.end(); it++ )
  {
       //do something
  }
  </code></pre>
  
  <p>The compiler is giving an error at the for statement.
  The following is the error</p>
  
  <p>error C2784: 'bool boost::operator &lt;(const boost::intrusive_ptr &amp;,const boost::intrusive_ptr &amp;)' : could not deduce template argument for 'const boost::intrusive_ptr &amp;' from 'std::_Tree&lt;_Traits>::iterator'.</p>
  
  <p>Any help is appreciated.
  Thank you.</p>