В чем причина этой ошибки компилятора с long long int в Visual Studio 2008? - PullRequest
2 голосов
/ 28 ноября 2011

Следующий код (упрощенный пример, который вызывает ошибку) не компилируется с VS 2008:

#include <math.h>

void test()
{
    long long int val1 = 1;
    long long int val2 = 2;
    long long int val3 = abs<long long int>(val1 / val2);
}

Это выдает ошибку компилятора (C2062) в третьей строке - тип __int64 является неожиданным. В чем причина этой ошибки? Как этого избежать?

1 Ответ

2 голосов
/ 28 ноября 2011

A long long версия abs не указана в стандарте.

26,5 / 3 показывает нам int и long версии.

26,5 / 5 даетперегрузки us float, double, long double.

Никаких других перегрузок, по-видимому, не требуется, я подозреваю, что long long не поддерживается или поддерживается всеми компиляторами / системами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...