Увеличьте величину i
для цикла и затем уменьшите его при необходимости в нем.
for i * 100 in range(0, 100, 10):
print i / 100.0
РЕДАКТИРОВАНИЕ: Я честно не могу помнить, почему я думал, что это будет работать синтаксически
for i in range(0, 11, 1):
print i / 10.0
, Который должен иметь желаемый вывод.
Он использовался для компиляции в компиляторе VC6, поэтому я предполагаю, что для поддержания обратной совместимости VS2008 поддерживает это не -стандартное расширение. Попробуйте установить флаг / Za (отключить расширение языка), тогда вы должны получить сообщение об ошибке.
Это злое расширение VC ++. Если вы компилируете с / W4, компилятор предупредит вас. Полагаю, вы читаете Ссылки на Rvalue: Возможности C ++ 0x в VC10, часть 2 . В этой статье также упоминалась эта проблема.
Он не компилируется, по крайней мере, с g ++ 4:
foo.cpp: In function ‘int main()’:
foo.cpp:16: error: invalid initialization of non-const reference of type ‘std::string&’ from a temporary of type ‘std::string’
foo.cpp:10: error: in passing argument 1 of ‘void mutate(std::string&)’
(Номера строк сброшены на 3 или 4, потому что мне пришлось добавить строки #include и 'using'. )
Итак, ваш компилятор не такой строгий, каким должен быть.
Это расширение Microsoft, имитирующее поведение многих других компиляторов Microsoft. Если вы включите предупреждения W4, вы увидите предупреждение.
Думаю, это зависит от компилятора. g ++ 4.1.2 дает мне это.
In function 'int main()':
Line 15: error: invalid initialization of non-const reference of type 'std::string&' from a temporary of type 'std::string'
compilation terminated due to -Wfatal-errors.
Может быть, потому что вы ничего не делаете, вызов оптимизирован.