21

関数があるとします (おそらくメンバ関数)

SomeType foo()
{
    static SomeType var = generateVar();
    return var;
}

複数のスレッドから同時に「初めて」呼び出される場合、どのvarように初期化されますか?foo

  1. generateVar()どのシナリオでも一度だけ呼び出されることが保証されていますか(もちろん使用されている場合)?
  2. fooどのシナリオでも複数回呼び出されたときに同じ値を返すことが保証されていますか?
  3. プリミティブ型または非プリミティブ型の動作に違いはありますか?
4

1 に答える 1