c++ - windows.h 和限制的冲突?

标签 c++ limit

<分区>

以下代码在 VS2010 中不起作用。这是什么原因?

#include <limits>
#include <windows.h> // if I remove this line, it is okay.

int main()
{
    std::numeric_limits<int>::min();
    return 0;
}

我创建了一个 VC 空控制台项目,并添加了一个 main.cpp,如上所示。是这个原因吗?我可能需要创建另一种项目吗?谢谢。

谢谢大家的帮助。问题来 self 正在使用 vld.hlimits 在一起。我确实阅读了 vld.h 以尝试自己找出问题所在。经过一些测试,我发现问题可能出在vld.h包含的window.h上。抱歉忘记用谷歌搜索了。我个人发现 stackoverflow 对你们这些像我这样的新程序员的友好帮助非常有帮助。

最佳答案

这是一个已知问题,由 windows.h 中定义的不幸的 max 宏引起(实际上,windef.h 包含在 windows.h 更准确)。在包含 windows.h 之前定义 NOMINMAX 应该可以解决问题。例如:

#define NOMINMAX
#include <windows.h>

关于c++ - windows.h 和限制的冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14657474/

相关文章:

node.js - 如何在 mongodb 和 NodeJS 查询中使用 limit

c++ - 如何将 c++ std::map 与关联数据的自定义比较函数进行比较?

c++ - 为什么派生类必须重新定义重写的基类方法

c++ - 如何让这个程序打印数组中搜索到的字符的索引,否则它会打印找不到?

java - 谷歌 ProtoBuf : Limit size of message

java - 属性文件中保存的值是否有长度限制?

javascript - 使用 javascript 解析 XML 文件时出现问题(限制结果)

c++ - 旧报告 ("Embedded"Access 2003 的升级路径)?

c++ - 如何判断一个对象是在构造函数上静态分配还是动态分配?

javascript - 如何使用 jQuery/JS 计算特定元素并限制它们的数量