title: boost shared_ptr cycling reference?
body: <p>From boost documentation on boost::shared_ptr:</p>
  
  <blockquote>
    <p>Because the implementation uses reference counting, cycles of
    shared_ptr instances will not be reclaimed. For example, if main()
    holds a shared_ptr to A, which directly or indirectly holds a
    shared_ptr back to A, A's use count will be 2. Destruction of the
    original shared_ptr will leave A dangling with a use count of 1. Use
    weak_ptr to "break cycles."</p>
  </blockquote>
  
  <p>I could not understand this paragraph, could you provide a minimum example of this situation and explain the consequence.</p>