ProgHubPH

Что будет выведенно на экранн в результате работы данной программы?

#include <iostream> 
 
template <class T> 
void f(T) 
{ 
    std::cout<<"base "; 
} 
 
template <> 
void f<int>(int) 
{ 
    std::cout<<"int "; 
} 
 
template <> 
void f<long>(long) 
{ 
    std::cout<<"long "; 
} 
 
int main() 
{ 
    short int i = 1; 
    long l = 2; 
 
    f(i);     
    f(l);     
    f(i * i);     
    f(l * l); 
} 
base long int long
base long base long
base long base base
int long int long