Эта строка работает правильно в небольшой тестовой программе, но в программе, для которой я ее хочу, я получаю следующие жалобы компилятора:
#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 : '::'
Я получаю те же результаты с:
#include <limits>
using namespace std;
x = numeric_limits<int>::max();
Почему он видит max как макрос max(a,b); ?
-DNOMINMAX
я получал внутреннюю ошибку компилятора. Забавно наблюдать, как Microsoft постоянно борется сама с собой. - person rr-   schedule 16.01.2016