«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему я получаю ошибки при использовании std::min/max с #define NOMINMAX?

Почему я получаю ошибки при использовании std::min/max с #define NOMINMAX?

Опубликовано 22 декабря 2024 г.
Просматривать:985

Why Do I Get Errors When Using std::min/max with #define NOMINMAX?

Использование std::min/max с #define NOMINMAX

В недавнем обновлении файла main.cpp вы добавили следующую директиву препроцессора:

#define NOMINMAX
#include 
#include 

Это действие позволяет вам использовать функции std::max и std::min в вашем коде. Однако последующие попытки использовать эти функции в других файлах приводят к таким ошибкам, как:

error C2589: '(' : illegal token on right side of '::'
error C2059: syntax error : '::'

Несмотря на попытки определить NOMINMAX в этих дополнительных файлах, проблема сохраняется.

Проблема заключается в том, что NOMINMAX определяет псевдонимы для минимального значения Windows. и max, перезаписывая стандартные версии C, предоставляемые . Чтобы решить эту проблему, используйте круглые скобки вокруг вызовов std::min и std::max:

(std::min)(x, y);

Этот подход позволяет избежать вызова функции- как макросы, позволяющие применять стандартные версии C.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3