long long
нестандартно, поэтому LONG_LONG_MAX
нестандартно.
Лучше использовать механизм C ++ numeric_limits< long long >::max()
, который находится в <limits>
.
long long
, все еще нестандартно, но если компилятор его реализует, это гарантированно сработает.
РЕДАКТИРОВАТЬ: Вы можете достичь того же, что и константа времени компиляции, используя
( ( 1ULL << numeric_limits< long long >::digits ) - 1 )