n2351: Improving shared_ptr for C++0x