Ініціалізація статичної локальної змінної у VS2013
Ось помилка, яку я вивудив нещодавно: статичні локальні змінні не ініціалізуються потоко-безпечним способом у Visual C++ 2013. Розгляньмо код ініціалізації об’єкта-одинака:
Singleton& getInstance()
{
static Singleton instance;
return instance;
}
C++11 вимагає, щоб компілятори генерували потоко-безпечні інструкції у цьому випадку. Так робить gcc, і таке очікував я. Проте, компілятор Microsoft, здається, ігнорує цю вимогу. Наприклад, про це говорять на форумі gamedev. Пильнуйте!