#include #include using namespace std; using namespace boost; class Object { public: Object(string n) { name = n; cout << name << " Created!" << endl; } ~Object() { cout << name << " Destroyed!" << endl; } string name; }; shared_ptr allocate() { return shared_ptr(new Object("B")); } int main() { // make a shared pointer shared_ptr ptr1(new Object("A")); shared_ptr ptr2 = allocate(); return 0; }