Можно дать шаблону shared_ptr пользовательскую функцию средства удаления, которая имеет подпись
void Deleter( T* ptr);
для повышения:: shared_ptr
Так для Средства удаления Вы сделали бы
boost::shared_ptr<T> ptrToT( new T, Deleter );
тогда в теле Средства удаления:
void Deleter( T* ptr);
{
ptr->deleteMe();
// And make sure YOU ACTUALLY DELETE (or do whatever else you need to
// do to release the resource)
delete ptr;
}
Для Вашего конкретного случая при необходимости в чем-то простом (как ptr-> deleteMe) посмотрите решение Greg, его очень хорошее.
Вы получите предупреждение, если не используете сертификат подписи кода. Для большинства центров сертификации сертификат подписи кода стоит больше, чем сертификат сервера. На мой взгляд, это всего лишь маркетинговая схема, чтобы заставить вас заплатить за другой сертификат. Между двумя сертификатами нет технической разницы. Некоторые CA могут предоставлять комбинированные сделки с использованием обоих.