这个程序能实现a b值的交换吗?不能的话要怎么改

#include
using namespace std;
void swap(int m,int n)
{ int temp=m;m=n;n=temp;}
int main()   
{    
int a=5,b=10;    
cout<<"交换前a、b的值为:"<<"a="<"b="<swap(a,b);    
cout<<"交换后a、b的值为:"<<"a="<"b="<return 0;
}

值传递,没法交换。用指针或者引用可以交换。
改为void swap(int *m,int &n)或者void swap(int &m,int &n)