私は一度初期化したい小さなビットを持つ関数を持っています。
void SomeFunc()
{
static bool DoInit = true;
if (DoInit)
{
CallSomeInitCode();
DoInit = false;
}
// The rest of the function code
}
この関数が何度も呼び出されると、if (DoInit)
最適化できない不要な関数が 1 つ残ります。では、コンストラクターなどの他の場所で初期化を行わないのはなぜですか? 論理的には、この初期化コードはこの関数内に最適であり、毎回不必要なチェックを行うにもかかわらず、そのように維持する方が簡単だからです。
上記の例の構成を使用せずにこれを行うより良い方法はありますか?