Как мне справиться с макросом Max в Windows.h столкнувшись с Максом в STD? [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как мне справиться с макросом Max в Windows.h столкнувшись с Максом в STD? [дублировать]

Сообщение Anonymous »

Итак, я пытался получить действительный целочисленный ввод от CIN и использовал ответ на этот вопрос.

Код: Выделить всё

#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>

, чтобы заставить его работать. Это довольно уродливо; Есть ли лучший способ обойти эту проблему? Может быть, я должен хранить определение максимума 
и переопределить его потом?

Подробнее здесь: https://stackoverflow.com/questions/115 ... max-in-std
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»