На Хабре опубликована статья
Синглтон и время жизни объекта. Начал читать и споткнулся на третьем абзаце: "Функция single возвращала нам заветный синглтон. Однако данный подход имеет изъян: в этом случае
мы не контролируем время жизни объекта и он может удалиться в тот момент, когда мы хотим этим объектом воспользоваться."
То есть в следующем коде
template<typename T>
T& single() {
static T t;
return t;
}
локальная переменная
t может быть удалена в процессе работы программы?
Откуда дровишки?
Или автор имеет в виду, что какой-то дочерний поток может обратиться к функции во время завершения работы программы, когда уничтожаются все глобальные переменные? Я бы спросил автора, но не зарегистрирован на Хабре.