Итак, вот код, который работает. Добавлено без каких-либо изменений. Есть значения X и Y, которые должны быть между 0 и 1024. tyleSize равно 1024;min и max просто не работают в этом случае?
// для X
int loffx=accurate(curphisobj->x) + (rand() % 100) - 50; //some math, doent matter
loffx=max(loffx,1);
loffx=min(loffx,tyleSize);
// для Y
int loffy=accurate(curphisobj->y) + (rand() % 100) - 50;
loffy=max(loffy,1);
loffy=min(loffy,tyleSize-3);
Но если я пишу это так:
int loffy=min(max(accurate(curphisobj->y) + (rand() % 100) - 50,1),tyleSize - 2);
int loffx=min(max(accurate(curphisobj->x) + (rand() % 100) - 50,0),tyleSize);
я loffx и loffy 1034, 1029, -5, - 2, все виды номенклатур, нечитаемые макс и мин.
Есть ли что-то, что я не знаю о компиляторе на C++, или есть какая-то глупая ошибка?
определение 'max' и' min', также 'точный' и что вы пытаетесь сделать? .. Любые пространства имен, которые вы используете, любые файлы' # include'd? .. –
Вам нужно функция зажима? –
подпись типов, декларация которых не отображается? эти 'std :: min' и' std :: max'? –