Я работаю над VS 2010 express и пытаюсь выполнить некоторые операции чтения и анализа файлов
моя функция работает примерно так ... (я отбросил скучные части)
void SomeClass::SomeFunc(char *ALName, std::map<...> *chromList, std::map<...> *chromLine)
{
ifstream file;
char tmpBuff[500];
char tmpBuff2[500];
char fileName[350];
char tmp[350];
char *pch;
char *pch2;
.....
file.open(fileName);
while ( file.getline( tmpBuff, 500 ) )
{
....
if ( some_condition == 0 )
{
pch2 = strtok( NULL, "," );
pch = strtok( NULL, "," );
(*chromList)[pch2] = do_some_work( atoi(pch), tmpBuff2 );
strcpy( tmp, get_chrom_line( tmpBuff2 ) );
(*chromLine)[pch2] = tmp;
}
}
file.close();
}
Когда я переключаюсь на Отпуск с оптимизацией, установленной на Максимальную скорость, эта функция пропускается.Отладчик входит в функцию и сразу же возвращается.
Когда я запускаю с параметром «Отладка» или «Выпуск» с отключенным флагом оптимизации, функция работает нормально.
Что может быть причиной этого?Могу ли я поместить определение препроцессора, чтобы принудительно вызвать «Нет оптимизации» для этой функции, в то время как остальная часть кода была оптимизирована
Спасибо!Идан