В исходном коде я видел, что min и max не определены. Что может быть причиной этого?Undefining min и max macro
// remove stupid MSVC min/max macro definitions
#ifdef WIN32
#undef min
#undef max
#endif
В исходном коде я видел, что min и max не определены. Что может быть причиной этого?Undefining min и max macro
// remove stupid MSVC min/max macro definitions
#ifdef WIN32
#undef min
#undef max
#endif
Некоторые заголовок MSVC имеет препроцессора макросы для определения min
и max
. Это плохо по многим причинам. Во-первых, они не являются зарезервированными именами, во-вторых, существуют стандартные библиотечные функции с одинаковыми именами.
Так что MSVC или что-то нарушало правила и код, определяя min
и max
как макросы, а использование undef
- это обход, чтобы исправить эту проблему.
См. this related question, в котором показано, как определять может нарушить код.
Возможно, автору необходимо было переопределить их? Или они мешали действительным функциям min/max, созданным автором. – bblincoe
Возможно, им захотелось удалить глупые макросы MSVC для min и max ;-) – dasblinkenlight
@bblincoe: Или вмешательство в действительные функции min/max, объявленные стандартными заголовками библиотек. –