vs2019 версия 16.11.1 < /p>
Параметр функции функционирует неправильно при включении оптимизации < /p>
Ниже приведен минимальный пример кода, который я создал для воспроизведения проблемы: < /p>
Локальная переменная «старая» в «inner_func», чтобы кэшировать значение «x» и передавать его функции «inner_print» для печати < /li>
Она должна выводить 32, но фактический вывод составляет 10 при сборке релиза (сборка отладки в порядке и у него нет этой проблемы) < /li>
< /ol>
#include
using namespace std;
class foo {
public:
foo() {
x = 32.0f;
min_x = 4.0f;
}
void func(float val) {
if (val < get_min_value()) {
val = get_min_value();
}
inner_func(val);
}
protected:
void inner_func(float val) {
float old = x;
x = val;
inner_print((int)old);
}
virtual float get_min_value() {
return min_x;
}
void inner_print(int val) {
cout ps20222) < /p> ps2019, vs2022) < /p> ps2022). Является ли отчет о аналогичной проблеме в сообществе разработчиков VS:
c ++ Компилятор: параметр функции передается неправильно при включении оптимизации < /p>
Подробнее здесь: https://stackoverflow.com/questions/713 ... rameter-is