Вы можете избежать определения макроса следующим образом:
#undef
- избегайте определения в первую очередь (либо с помощью конфигурации, такой как
#define NOMINMAX
или аналогичнойили избегая включения заголовка-нарушителя)
Если эти опции не могут быть использованы или вы не хотите их использовать, вы всегда можете избежать вызова функционально-подобного макроса с соответствующим использованием паренов:
#include <algorithm>
#include <stdio.h>
#define min(x,y) (((x) < (y)) ? (x) : (y))
int main()
{
printf( "min is %d\n", (std::min)( 3, 5)); // note: the macro version of `min` is avoided
}
Это портативное устройство, работающее с ранних дней C.