1 // ... 2 std::list< DynObj<T>::InValueContainer > list; 3 list.push_back(dynObj(new T)); 4 // ... 5 DynObj<T> otherT(new T); 6 list.first() = otherT.giveAway(); //ok 7 // ... 8 otherT.acquire(new T); 9 list.push_back(otherT.giveAway()); // ok 10 // ...