Я не согласен с вашим утверждением
Поскольку шаблон синглтона имеет ряд потенциальных проблем, я слышал, что шаблон в реальной отрасли устарел.
Полагаю, вы имеете в виду проблему двойной проверки блокировки (DLCP). Это было хорошо описано в статье Скотта Мейерса и Андрея Александреску: C ++ и опасности двойной проверки блокировки .
Основной темой здесь был дизайн и использование безопасных потоков. Для однопоточного кода проблем с одноэлементным шаблоном не будет.
Так что ни одно крупное сообщество, такое как индустрия, не одобрит эту модель. Есть еще много вариантов использования, которые требуют синглтона. Может быть, какое-то правило кодирования в какой-то компании не позволяет этого.
И, DLCP очень стар. В новых версиях C ++ это полностью исправлено. Доступны поточно-безопасные версии. Вы можете посмотреть на здесь .
Теперь к вашему коду.
Это не заводской шаблон. Это чистый, но более сложный синглтон. Вы всегда возвращаете один и тот же экземпляр. Итак, синглтон.
И это печальная история, ваша реализация имеет DLCP и не является поточно-ориентированной.
Извините. , .