Make template take int32 instead of int

Hello,

I tried writing a template function and the compiler tries to input an int instead of an int32 with a 0.
Now there are some template functions (like the TArray constructor) that know they should take an int32 instead of an int.
I wonder how the compiler knows that without a specialization.

Example:

// My Function
template<typename T, std::enable_if_t<std::is_arithmetic_v<T>, bool> = true>
void MyFunc(T Arg);

// TArray Constructor
TArray(std::initializer_list<InElementType> InitList)