Listing 4: A free DynObj.

 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 // ...