我有问题std::max
。我想不通。
int border = 35;
int myInt = 2;
int myOtherInt = 3;
int z = std::max(myInt + 2 * border, myOtherInt + 2 * border);
我已经包含了算法标准头。当我将鼠标悬停在 max 上时,我得到:
错误:需要一个标识符
以及编译错误:
错误 C2589:'('
: 右侧的非法标记'::'
错误 C2059:语法错误:'::'
怎么了?
冒着猜测的风险,因为你使用的是 VC++ - 把它放在任何之前#include
s:
#define NOMINMAX
windows.h
定义名为min
and max
像这样:
#define min(a,b) (((a) < (b)) ? (a) : (b))
#define max(a,b) (((a) > (b)) ? (a) : (b))
在 C++ 标准化之前,Windows SDK 就包含了这些宏,但由于它们显然对 C++ 标准库造成了严重破坏,因此可以定义NOMINMAX
宏以防止它们被定义。
通常,如果您使用 C++(而不是 C)并包含windows.h
, always define NOMINMAX
first.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)