'numeric_limits'没有在这个范围内声明,没有匹配函数调用'max()'

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (56)

我在家里使用w / xcode编译这段代码,没有任何问题。我在linux上用g ++在学校编译它,我得到这些错误:

:'numeric_limits'不是 '>'之前std :expected primary-expression 的成员标记:没有用于调用'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;    
} 
提问于
用户回答回答于

你需要包含头文件<limits>,这std::numeric_limits是定义的地方。你的Mac编译器通过自动包含头文件来帮助你; 然而,你不应该依赖这种行为并明确地包含你需要的任何头文件。

扫码关注云+社区

领取腾讯云代金券