Stack Exchange network consists of 178 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
View all activity pages
By the time I had this code together lots of people have made similar comments.
Anyway, here is my attempt at refactoring your code.
templated type - more flexible.
cleanup mechanism -...