Почему MSVC выбирает тип long для типа -2147483648?

Мой фрагмент:

auto i = -2147483648;
int j = 3;
std::swap(i, j); // Compile error about mismatched types here. 

Компилятор утверждает, что литералi этоlong long, Это почему? -2147483648 вписывается вint на MSVC x64.

Мой компилятор - MSVC, цель - 64 бита.

Ответы на вопрос(1)

Ваш ответ на вопрос