我将如何实际调用 std::max ?该代码无法在 Visual Studio 2013 中编译,因为它采用“max”作为宏。
std::max( ... );
在“std::”之后需要一个标识符。
您可以取消宏定义:
#undef max
Edit:似乎可以通过放置来安全地禁用宏
#define NOMINMAX
在定义它们的头文件之前(很可能windef.h
,您可能间接包含)。
避免取消宏定义,您只需将函数括在括号中即可
(std::max)(...)
正如 chris 在评论中指出的,类似函数的宏需要宏名称后面的标记是左括号才能扩展。将名称括在括号中实际上只是一种技巧,使下一个标记成为右括号,一旦将宏放在一边,就不会改变含义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)