Учитывая этот код:
std::vector<myObject*> veryLargeArray;
for (int i = 0; i < veryLargeArray.size(); ++i)
{
param_type* currParams = veryLargeArray[i]->GetParams<param_type>();
currParams->phi = /* some complex formula */;
}
Как бы я перешагнул этот код так, чтобы я знал, какой ответ хранится в phi
до начала следующей итерации цикла, которая эффективно уничтожит currParams
и, следовательно, мои шансы на просмотр его значений в отладчике?
Я слишком часто сталкиваюсь с этой ситуацией, и мое решение состоит в том, чтобы либо перекомпилировать код, поместив фиктивную переменную непосредственно перед концом блока, где я затем помещаю разрыв ИЛИ , проходящий через массив значений, которые иногда могут быть огромными, просто чтобы я мог видеть, какое значение было сохранено, или может потребоваться дополнительная работа только для преобразования сохраненного param_type
в правильный объект. Оба решения не идеальны, так как первое вводит предупреждения (что рассматривается как ошибка, и в этом случае я должен установить правила для каждого файла), а также перекомпиляцию кода, чего я хотел бы избежать, в то время как второй тратит впустую. время.