Здравствуйте Lexey, вы писали:
L>Здравствуйте vladsm, вы писали:
V>>Пример кода:
V>>for(int i=0;i<some_number1;i++)
V>>{
V>>...
V>>}
V>>...
V>>for(int i=0; i<some_number2;i++)
V>>{
V>>...
V>>}
V>>Компилятор (VC6, SP5) ругается, что i объявлена повторно. Это не соответствует завещанию Б.Страуструпа. В чем же дело?
L>В компиляторе. Это известная и документированная несовместимость VC6 со стандартом. Не лечится. :)
Если очень невмоготу напишите в самом начале
#define for if(1)for
Оптимизатор потом все равно этот маразм уберет, зато портировть куски прог в VC сможете...
Я сам на эти грабли наступал.....У меня во внутр йикле была таже переменная цикла что и во внешнем — по стандарту все ОК, а тут....
Саша.
Здравствуйте Sasparella, вы писали:
S>Если очень невмоготу напишите в самом начале
S>S>#define for if(1)for
S>
S>Оптимизатор потом все равно этот маразм уберет, зато портировть куски прог в VC сможете...
Так как раз таки не стоит. Конструкция
if (...)
for (...) ...;
else
...;
будет транслироваться неправильно. Правильный вариант
#define for if (false); else for
Best regards,
Андрей Тарасевич,
Brainbench C and C++ Programming MVP