Sngleton i kolejność statycznej inicjalizacji

0

Witam,
Mam taki problem. Stworzylem sobie singletona GlobaAccess, który jak każdy singleton, posiada zmienną statyczną - instancję. Instatncja jest inicjowana zerem.
Inny moduł korzysta z singletona. Kod wygląda tak:

globalaccess.hpp:
class GlobalAccess {
...
static GlobalAccess* _instance;
};
globalaccess.cpp:
GlobalAccess* GlobalAccess::_instance = 0;

threadsupport.hpp:
class ThreadSupport {
...
static GlobalAccess* _globalAccess;
};
threadsupport.cpp:
GlobalAccess* ThreadSupport::_globalAccess = GlobalAccess::instance();

I teraz pytanie: czy jest możliwe, żeby najpierw zostatała zainicjowana zmienna ThreadSupport::_globalAccess a potem zmienaa GlobalAccess::_instance?

0

Tutaj GlobalAccess::_instance to built-in, więc pewnie zostanie wsadzony w programie w sekcję danych (nie interesuje nas, czy zainicjaliowanych, czy nie), natomiast ThreadSupport::_globalAccess zostanie zainicjalizowane w runtime (jako że jest inicjalizowane wartością zwracaną przez niedeterministyczną funkcję (zgaduję, że instance zwraca przez new, ale to mało ważne - i tak się pewnie przy kompilacji obliczyć nie da)), czyli odpowiedź brzmi nie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1