std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:“::”

原文地址:http://www.youranshare.com/push/code/win-c-cpp/483.html


在VC++种同时包含头文件#include 和#include 后就会出现无法正常使用std标准库中的min和max模板函数,经过查阅发现这是因为在Windows.h种也有min和max的定义,这样就导致了algorithm中的min和max无法正常使用,这里给出两种解决方案,来解决std命名空间无法使用min和max的问题。

解决方案一:使用std::min或者std::max的时候加上括号,避免与Windows.h中的min、max宏定义冲突。如(std::min)(1000, 200);

解决方案二:

禁用Windows.h中的min、max宏定义。在Windows.h中可以查阅到min、max的定义为:

你可能感兴趣的:(std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:“::”)