const double FRAME_RATE = 60.0;
double gameTime = 0.0;
double gameDeltaTime = 1.0 / FRAME_RATE;

Boost::timer t;

while (true) {
  double currentTime = t.elapsed();

  if (gameTime > currentTime) {
    Sleep(gameTime - currentTime);
  }
  gameTime += gameDeltaTime;

  Update();
  Render();
}

こんなんでも基本に。