Попробуйте покопать в направлении использовании функции atexit() — эта функция регистрирует пользовательские функции, которые вызываются при выходе из приложения. А вообще, если много синглтонов — посмотрите реализацию у Александреску в библиотеке Loki