Listing 3
#include <memory> #include <iostream> using std::tr1::shared_ptr; using std::cout; struct S { // simple struct void call_me(const char *desc) const { // member function cout << "called me, " << desc << '\n'; } }; int main() { // demonstrate use of controlled resource shared_ptr<S> sp(new S); sp->call_me("used operator->"); sp.get()->call_me("used member function get()"); (*sp).call_me("used operator*"); return 0; }