Thread-sichere statische Variablen ohne Mutexing?

Ich erinnere mich, dass ich gelesen habe, dass statische Variablen, die in Methoden deklariert wurden, nicht threadsicher sind. (SehenWas ist mit dem Singleton des Meyer? wie erwähnt vonTodd Gardner)

<code>Dog* MyClass::BadMethod()
{
  static Dog dog("Lassie");
  return &dog;
}
</code>

Meine Bibliothek generiert C ++ - Code, den Endbenutzer als Teil ihrer Anwendung kompilieren können. Der erzeugte Code muss statische Variablen auf eine thread-sichere plattformübergreifende Weise initialisieren. Ich würde gerne verwendenboost::call_once Um die Variableninitialisierung zu mutexen, sind Endbenutzer jedoch der Boost-Abhängigkeit ausgesetzt.

Gibt es eine Möglichkeit, dies zu tun, ohne zusätzliche Abhängigkeiten von Endbenutzern zu erzwingen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage