Недавно я столкнулся с проблемой, когда у меня произошла ошибка в MSVC, а в GCC - нет.
Через несколько часов я понял, что, по-видимому, моя версия MSVC не поддерживает следующий синтаксис:
double value = 3.4;
double fractional = std::modf(value, nullptr);
где я не хочу / забочусь о всей части номера.
Да, я знаю, что могу сделать «3.4 - 3.0» или что-то подобное, но меня беспокоит то, как конкретно использовать modf таким образом. В настоящее время я вижу только это через:
double temp;
double value = 3.4;
double fractional = std::modf(value, &temp);
Есть ли способ обойти эту временную переменную?