Zmienne statyczne bezpieczne dla wątków bez mutexingu?
Pamiętam, że czytałem, że zmienne statyczne zadeklarowane wewnątrz metod nie są bezpieczne dla wątków. (WidziećA co z singletonem Meyera? jak wspomniano przezTodd Gardner)
<code>Dog* MyClass::BadMethod() { static Dog dog("Lassie"); return &dog; } </code>
Moja biblioteka generuje kod C ++, który użytkownicy końcowi mogą skompilować w ramach swojej aplikacji. Kod, który generuje, musi inicjować zmienne statyczne w bezpieczny dla wątków sposób międzyplatformowy. Chciałbym użyćboost::call_once
mutex inicjalizacji zmiennej, ale następnie użytkownicy końcowi są narażeni na zależność Boost.
Czy mogę to zrobić bez wymuszania dodatkowych zależności od użytkowników końcowych?