class test_class1 { public: S32 number; test_class1() {number = 0;} ~test_class1() {printf("deleted test_class1, number = %i\n", number);} }; void test1() { Vector > v; v.push_back(boost::shared_ptr(new test_class1())); test_class1 *a = v[0].get(); v.push_back(boost::shared_ptr(a)); v.erase(1); v[0]->number = 1; v.erase(0); } #ifdef TNL_OS_XBOX int zapmain(int argc, char **argv) #else int main(int argc, char **argv) #endif { test1(); // ... }