I work on a large software product which, being over 20 years old, has a number of constructs which have been superseded by language updates.
One of these is a home-rolled smart pointer template class which acts similarly to - but is not quite indentical to -
std::unique_ptr. The class has its destructor specialised for a number of types with specific destruction needs, and is referenced of the order of 150-200 times. It apparently works perfectly.
Were the application to be written from scratch now, I'm reasonably certain that
std::unique_ptr would be used instead. How aggressively should we pursue replacing the home-rolled class with
std::unique_ptr; possibly including
typedefs for the common specialisations with specific destructors?