title: How is the std::tr1::shared_ptr implemented?
body: <p>I've been thinking about using shared pointers, and I know how to implement one myself--Don't want to do it, so I'm trying <code>std::tr1::shared_ptr</code>,and I have couple of questions...</p>
  
  <p>How is the reference counting implemented? Does it use a doubly linked list? (Btw, I've already googled, but I can't find anything reliable.)</p>
  
  <p>Are there any pitfalls for using the <code>std::tr1::shared_ptr</code>?</p>