「numeric_limits」はこの範囲で宣言されておらず、「max()」への呼び出しの一致関数はありません

StackOverflow https://stackoverflow.com/questions/4798936

質問

私はこのコードを自宅で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コンパイラは、そのヘッダーファイルを自動的に含めることであなたを支援していました。ただし、その動作に頼っては、必要なヘッダーファイルを明示的に含めるべきではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top