Listing 3: Using DynTmp.

DynTmp<Foo> getFoo() {return new Foo;}
DynTmp<Foo> getFoo2() {
    DynObj<Foo> foo(new Foo);
    return foo.moveToTmp();
}
int main() {
    DynObj<const Foo> foo( getFoo() );
    getFoo2();
}