Esta línea funciona correctamente en un programa de prueba pequeña, pero en el programa para el que lo quiero, me sale el siguiente quejas del compilador:advertencia C4003 y errores C2589 y C2059 en: x = std :: numeric_limits <int> :: max();
#include <limits>
x = std::numeric_limits<int>::max();
c:\...\x.cpp(192) : warning C4003: not enough actual parameters for macro 'max'
c:\...\x.cpp(192) : error C2589: '(' : illegal token on right side of '::'
c:\...\x.cpp(192) : error C2059: syntax error : '::'
que obtener los mismos resultados con:
#include <limits>
using namespace std;
x = numeric_limits<int>::max();
¿Por qué se ve max como la macro max (a, b); ?
En mi caso, sin el '-DNOMINMAX' estaba obteniendo un error de compilador interno. Es divertido ver cómo Microsoft lucha constantemente contra sí mismo. –