Como a inicialização de variável estática é implementada pelo compilado

Estou curioso sobre a implementação subjacente de variáveis estáticas dentro de uma funçã

Se eu declarar uma variável estática de um tipo fundamental (char, int, double, etc.) e atribuir um valor inicial, imagino que o compilador simplesmente defina o valor dessa variável no início do programa antes demain() é chamado

void SomeFunction();

int main(int argCount, char ** argList)
{
    // at this point, the memory reserved for 'answer'
    // already contains the value of 42
    SomeFunction();
}

void SomeFunction()
{
    static int answer = 42;
}

No entanto, se a variável estática for uma instância de uma classe:

class MyClass
{
    //...
};

void SomeFunction();

int main(int argCount, char ** argList)
{
    SomeFunction();
}

void SomeFunction()
{
    static MyClass myVar;
}

Sei que não será inicializado até a primeira vez que a função for chamada. Como o compilador não tem como saber quando a função será chamada pela primeira vez, como ela produz esse comportamento? Introduz essencialmente um bloco if no corpo da função?

static bool initialized = 0;
if (!initialized)
{
    // construct myVar
    initialized = 1;
}

questionAnswers(10)

yourAnswerToTheQuestion