void smart_ptr_tests::test_case_copy_and_assignment() { smart_ptr<char> ptr1(new char(45)); assert(*ptr1 == 45); smart_ptr<char> ptr2(nullptr); smart_ptr<char> ptr3(nullptr); auto ptr4(ptr1); assert(*ptr4 == 45); ptr2 = ptr4; assert(*ptr2 == 45); ptr3 = ptr1; assert(*ptr3 == 45); *ptr1 = 123; assert(*ptr2 == 123); ptr3 = ptr1; assert(*ptr3 == 123); // nullptr is r-value so move operator= ptr4 = smart_ptr<char>(nullptr); ptr4 = nullptr; ptr3 = smart_ptr<char>(nullptr); ptr1 = ptr2 = ptr3; smart_ptr<const char> ptr5(new char(12)); ptr5 = ptr5 = ptr5; assert(*ptr5 == 12); }
void testObj::test<9>(void) { PointerWrapper< Commons::SharedPtrNotNULL<Data> > ptr(spnn_); PointerWrapper< Commons::SharedPtrNotNULL<Data> > ptr1(ptr); PointerWrapper< Commons::SharedPtrNotNULL<const Data> > ptr2(ptr); PointerWrapper< boost::shared_ptr<Data> > ptr3(ptr); PointerWrapper< boost::shared_ptr<const Data> > ptr4(ptr); PointerWrapper<Data*> ptr5(ptr); PointerWrapper<const Data*> ptr6(ptr); }