Transcription: Because the arguments in this call to swap have different types, the compiler cannot create a template function. The function template does not specify the type of the arguments, but it does specify that they have the same type. The non-template function is called instead. Both arguments are promoted to type float. A side effect of the promotion is that the values exchanged by the function cannot be assigned to i and j when the function ends.