`circle()`
`use count of ptr1 is 1`
`use count of ptr2 was 0`
`use count of ptr2 is now 2`
`ptr1 is not empty`
`use count of ptr3 is 3`
`~circle()`
`circle()`
`use count of ptr1 is 1`
`use count of ptr2 was 0`
`other.shared_count_->add_count();`
`use count of ptr2 is now 2`
`ptr1 is not empty`
`other.shared_count_->add_count();`
`use count of ptr3 is 3`
`delete ptr_;`
`~circle()`
`delete shared_count_;`
`circle()`
`use count of ptr1 is 1`
`use count of ptr2 was 0`
`other.shared_count_->add_count();`
`use count of ptr2 is now 2`
`ptr1 == ptr2`
`other.shared_count_->add_count();`
`use count of ptr3 is 3`
`delete ptr_;`
`~circle()`
`delete shared_count_;`