What does a and b hold in function swapp ? are they holding value or address ? what kinda variables are they I am lost here !
#include <iostream>
using namespace std;
template <class T1 = int>
void swapp(T1 &a, T1 &b)
{
    T1 temp;
    temp = a;
    a = b;
    b = temp;
}
int main()
{
    int x = 5, y = 10;
    swapp(x, y);
    cout << x << " " << y;
    return 0;
}
 
     
    