Visual Studio 2012 の標準コンパイラの C++ プログラムにこのメソッドがあります。
bool FPS::frameRenderingQueued(const Ogre::FrameEvent &evt) {
bool result = BaseApplication::frameRenderingQueued(evt);
if (!result) {
Ogre::LogManager::getSingleton().logMessage("Exiting, result of frame rendereing queued: " + result);
return result;
}
for (int x = 0; x < 20; x++) {
for (int z = 0; z < 20; z++) {
robotAnimation[x][z]->addTime(evt.timeSinceLastFrame);
tileSceneNode[x][z]->translate(tileSceneNode[x][z]->getOrientation() * Ogre::Vector3::UNIT_X * 35.0f * evt.timeSinceLastFrame);
}
}
}
エラーを出さずにコンパイルするにはどうすればよいでしょうか? 結果は予測できません。
実行すると、次のことが起こりました: 関数自体が返されました (Ogreが返さfalse
れた場合にシャットダウンします。ただし、ブランチには到達していません。したがって、動作は予測できませんでした。frameRenderingQueued()
false
if (!result) { ... }
後でreturn true;
関数の最後に追加したとき、すべてが期待どおりに機能していました。
では、この壊れたメソッドを正常にコンパイルするにはどうすればよいでしょうか。