#include <iostream>
void swap(int &pi, int &pj){
std::cout << "In function swap: " << &pi << " " << &pj << "\n";
int temp = pi;
pi = pj;
pj = temp;
}
int main(){
int i = 10, j = 20;
int *pi = &i, *pj = &j;
swap(pi, pj);
std::cout << *pi << " " << *pj;
return 0;
}
The above program does not give any compilation error. (Though to swap function in not POINTER TO REFERENCE type) and gives the proper output.
But whatever i am trying to print inside “swap” function is not printed to console.
Can anybody explain me why?
Looks like you’re probably using
std::swapto swap two pointers instead of calling your own swap routine. I suspect you have ausing namespace std;somewhere that you are not showing us ? Try changing the name of your swap routine to e.g.my_swapand then see if callingmy_swapworks (it should fail with a compilation error).