Inicjowanie części funkcji tylko raz

Mam funkcję z małym bitem, który chcę zainicjować raz, np.

void SomeFunc()
{
static bool DoInit = true;
if (DoInit)
   {
   CallSomeInitCode();
   DoInit = false;
   }
// The rest of the function code
}

Jeśli ta funkcja jest wywoływana wiele razy, pozostawia jeden niepotrzebnyif (DoInit) które nie mogą być zoptymalizowane. Dlaczego więc nie wykonuję inicjalizacji w innym miejscu, jak konstruktor? Ponieważ logicznie ten kod inicjujący najlepiej pasuje do tej funkcji, łatwiej jest go utrzymać, mimo że za każdym razem wykonuje niepotrzebne sprawdzanie.

Czy jest lepszy sposób na zrobienie tego bez uciekania się do użycia konstruktu w powyższym przykładzie?

questionAnswers(1)

yourAnswerToTheQuestion