Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}