Цитата(TarasBer @ 2.09.2011 9:56)

Почему?
Я всё равно оптимизированные версии для отладки не использую (только на асмовыхлоп смотрю, что там компилятор насочинял), а отключать оптимизации для отладки всегда можно.
Ладно, оставим личности (не очень удачная была шутка, но такое уж у меня сложилось мнение о тебе)).
Отключить оптимизацию на отладке? Хорошо. Но если баг как раз в оптимизации?
Допустим, мы делаем на заказ прогу для владельца машинописного цеха, считающую среднее время между нажатиями на клавишу (для оценки скорости работы машинисток)). В цикле вызываем функуцию Time и вычитаем старое (запомненное) значение из нового. На стадии отадки оптимизация отключена. Отладили, все считается правильно. Мы включаем оптимизацию, компилируем и передаем экзешник в эксплуатацию. А назавтра заказчик звонит и мы понимаем из 2% его слов (которые не мат), что результат всегда 0. Угадаешь, почему?

Теперь ответь: как компилятор отличит функцию типа sin от функции типа time? То есть - как он разберет, какую можно кешировать, а какую нельзя?