Witam
Mam pytanie odnośnie singletona Meiera:
class Singleton final
{
public:
~Singleton() = default;
static Singleton& instance()
{
static Singleton inst;
return inst;
}
private:
Singleton() = default;
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton &)=delete;
}
w main:
Singleton& obiekt=Sigleton::instance();
Czy to C++11 czy wcześniejszy to przecież zmienna static jest umieszczana w data/bss segmencie. A więc nawet jak jeszcze nie wejdziemy w ciało funkcji przy uruchomieniu programu to instancja singletona już istnieje. Więc przed C++11 też powinna być thread-safe.