「numeric_limits」はこの範囲で宣言されておらず、「max()」への呼び出しの一致関数はありません
-
24-10-2019 - |
質問
私はこのコードを自宅でMACでXcode w/ xcodeでコンパイルしましたが、提供されていませんでした。 LinuxでG ++を使用して学校でコンパイルし、これらのエラーが発生します。
:「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コンパイラは、そのヘッダーファイルを自動的に含めることであなたを支援していました。ただし、その動作に頼っては、必要なヘッダーファイルを明示的に含めるべきではありません。
所属していません StackOverflow