Это ошибка компиляции C ++ Visual Studio 2019? (Параметр функции передается неправильно при включении оптимизации)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Это ошибка компиляции C ++ Visual Studio 2019? (Параметр функции передается неправильно при включении оптимизации)

Сообщение Anonymous »

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»