#include // includes WinDef.h which defines min() max()
#include
using std::cin;
using std::cout;
void Foo()
{
int delay = 0;
do
{
if(cin.fail())
{
cin.clear();
cin.ignore(std::numeric_limits::max(), '\n');
}
cout > delay) || delay == 0);
}
< /code>
, что дает мне ошибку в Windows, заявляя, что макрос Max < /code> не принимает столько аргументов. Это означает, что я должен сделать это < /p>
do
{
if(cin.fail())
{
cin.clear();
#undef max
cin.ignore(std::numeric_limits::max(), '\n');
}
cout > delay) || delay == 0);
< /code>
, чтобы заставить его работать. Это довольно уродливо; Есть ли лучший способ обойти эту проблему? Может быть, я должен хранить определение максимума
Итак, я пытался получить действительный целочисленный ввод от CIN и использовал ответ на этот вопрос.[code]#include // includes WinDef.h which defines min() max() #include using std::cin; using std::cout;
, что дает мне ошибку в Windows, заявляя, что макрос Max < /code> не принимает столько аргументов. Это означает, что я должен сделать это < /p>
do { if(cin.fail()) { cin.clear(); #undef max cin.ignore(std::numeric_limits::max(), '\n'); } cout > delay) || delay == 0); < /code>
, чтобы заставить его работать. Это довольно уродливо; Есть ли лучший способ обойти эту проблему? Может быть, я должен хранить определение максимума [/code] и переопределить его потом?