«NUMIRC_LIMITS» не был объявлен в этом прицеле, не соответствующей функции для вызова 'max ()'
-
24-10-2019 - |
Вопрос
Я собрал этот код дома на моем Mac с Xcode, и не было провинции. Я составляю его в школе с 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;
}
Я Geussing, может быть, мне придется включить дополнительный заголовок. Если я заберу у STD :: это просто дает мне подобную ошибку
«NUMIRC_LIMITS» не был объявлен в этой области
Решение
Вам нужно включить файл заголовка <limits>
, где где std::numeric_limits
определено. Ваш компилятор Mac помогал вам автоматически, включая этот файл заголовка; Тем не менее, вы не должны полагаться на это поведение и явно включать в себя любые файлы заголовков, которые вам нужны.
Не связан с StackOverflow