title: Is there an easy way to make `boost::ptr_vector` more debugger friendly in Visual Studio?
body: <p>I'm considering using <code>boost::ptr_container</code> as a result of the responses from <a href="https://stackoverflow.com/questions/4531643/whats-the-best-way-to-return-something-like-a-collection-of-stdauto-ptrs-in/4531904#4531904">this question</a>. My biggest problem with the library is that I cannot view the contents of the collection in the debugger, because the MSVC debugger doesn't recognize it, and therefore I cannot see the contents of the containers. (All the data gets stored as <code>void *</code> internally)</p>
  
  <p>I've heard MSVC has a feature called "debugger visualizers" which would allow the user to make the debugger smarter about these kinds of things, but I've never written anything like this, and I'm not hugely firmiliar with such things.</p>
  
  <p>For example, compare the behavior of <code>boost::shared_ptr</code> with MSVC's own <code>std::tr1::shared_ptr</code>.  In the debugger (i.e. in the Watch window), the boost version shows up as a big mess of internal variables used for implementing the shared pointer, but the MSVC version shows up as a plain pointer to the object (and the <code>shared_ptr</code>'s innards are hidden).</p>
  
  <p>How can I get started either using or implementing such a thing?</p>