title: Which STL containers require the use of CAdapt?
body: <p>The <a href="http://msdn.microsoft.com/en-us/library/bs6acf5x.aspx" rel="nofollow noreferrer"><code>CAdapt</code></a> class is provided by Microsoft in order to enable using classes that override the address of operator (<code>operator&amp;</code>) in STL containers. MSDN has this to say about the use of <code>CAdapt</code>:</p>
  
  <blockquote>
    <p>Typically, you will use <code>CAdapt</code> when you want to store <code>CComBSTR</code>, <code>CComPtr</code>, <code>CComQIPtr</code>, or <code>_com_ptr_t</code> objects in an STL container such as a <code>list</code>.</p>
  </blockquote>
  
  <p>On to my quesiton:</p>
  
  <p><strong>What is the full list of STL containers with which <code>CAdapt</code> should be used?</strong></p>
  
  <p>If the container contains a key/value pair (such as <code>map</code>) please specify whether <code>CAdapt</code> is needed for the key or the value.</p>