float getValue( int i )
{
switch ( i )
{
case 0: return 0.1f;
case 1: return 0.f;
case 2: return 1.f;
case 3: return 0.25f;
}
return 0;
}
的なコードを書いてReleaseビルドしたら、
なぜか戻り値がすべて0になるバグに遭遇した。
float getValue( int i )
{
float ret = 0;
switch ( i )
{
case 0: ret = 0.1f; break;
case 1: ret = 0.f; break;
case 2: ret = 1.f; break;
case 3: ret = 0.25f; break;
}
return ret;
}
のようにして、いったん変数に入れるようにしたら正常に動作するようになった。
関数を呼び出す位置によって動いたり動かなかったりして本当によくわからない現象だった。