我在家里用 xcode 在我的 mac 上编译了这段代码,没有出现任何问题。我在学校用 g++ 在 Linux 上编译它,并收到以下错误:
numeric_limits’ 不是 std 的成员
'>' 标记之前的预期主要表达式
没有匹配的函数来调用“max()”
#include <iostream>
#include <cstdlib>
using namespace std;
int GetIntegerInput(int lower, int upper)
{
int integer = -1;
do
{
cin >> integer;
cin.clear();
cin.ignore(std::numeric_limits<streamsize>::max(), '\n'); //errors here
} while (integer < lower || integer > upper);
return integer;
}
我猜也许我必须包含一个额外的标头。如果我拿走std::
它只是给了我一个类似的错误:
numeric_limits
在这方面没有申明
您需要包含头文件<limits>
,这就是哪里std::numeric_limits
被定义为。你的 Mac 编译器通过自动包含该头文件来帮助你;但是,您不应该依赖该行为并显式包含您需要的任何头文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)