Chociaż dopiero teraz widzę, że auto_ptr niewiele tu pomoże - w końcu ALLEGRO_FONT niekoniecznie jest alokowane przez new (i jeszcze parę innych szczegółów, jak semantyka, jest przeciwko auto_ptrowi). Zainteresuj się tym, o czym pisał ShadowDancer.
No faktycznie, generalnie chodziło mi o różnicę miedzy rozwiązaniem w poście wyżej a tym co jest w auto_ptr.
Czyli przy kopiowaniu usuwamy zasób/wskaźnik z RHS a nie LHS. Nie jest to proste, bo standard mówi że copy ctr bierze const reference, ale pod MSVC nie jest to wymagane a pod GCC można zastosować sztuczkę jak ichni auto_ptr.