Как уже упоминалось, ошибки происходят из-за макросов min / max, которые определены в заголовках окна.Есть три способа их отключения.
1) #define NOMINMAX
перед включением заголовка, как правило, это плохой метод определения макросов для воздействия на следующие заголовки:
2) define NOMINMAX
в командной строке компилятора / IDE.Плохая часть этого решения заключается в том, что если вы хотите отправить свои исходники, вы должны предупредить пользователей о том, чтобы они делали то же самое;
3) просто отменяют определение макросов в вашем коде, прежде чем они будут использованы
#undef min
#undef max
Это, пожалуй, самое портативное и гибкое решение.