Когда новая интегрированная среда разработки Visual Studio (например, VS 2019) загружает более старый проект в первый раз, она просит перенастроить проект. Если у вас установлена старая Visual Studio, вы можете отклонить это действие. Затем компилятор из исходного VS будет использоваться более новой IDE.
После загрузки решения в обозревателе решений рядом с именем проекта у вас будет Visual Studio, которая будет использоваться для компиляции проекта. , Если парантез отсутствует, это означает, что используется компилятор и стандартная библиотека из текущей Visual Studio.
Как уже упоминалось в комментариях:
У меня нет скобок после проекта имя (если я ищу в нужном месте). Однако я понял проблему в путях включаемых файлов: Тестовый проект: 14.24.28314 \ include \ cmath; Основной проект: Microsoft Visual Studio 12.0 \ VC \ include \ cmath , то есть, гораздо более старая версия, которая все еще полагается на заголовок C math.h. Итак, один и тот же компилятор (VS2013), разные библиотеки ...
Это указывает на то, что вы, скорее всего, перенастроили проект или создали новый проект в VS 2019.
Чтобы создать Для проекта в VS 2019 используйте более старый компилятор. Вам нужно перейти в Свойства проекта -> Свойства конфигурации -> Общие -> Набор инструментов платформы и изменить его на соответствующую Visual Studio.
Также убедитесь, что все конфигурации (Debug, Release, ...) для всех типов компьютеров (32-разрядных, 64-разрядных) имеют этот параметр одинаковое значение.
Поскольку в тестовом проекте используется VS 2019 - в нем есть все необходимые определения - поэтому он работает.
Таким образом, проблема в том, что, скорее всего, стандартная библиотека VS 2013 не является C ++ 11 полной и НЕ имеет определения для HUGE_VALF
. Но оно может содержать определение для HUGE_VAL