#include <iostream>
using namespace std;
template < class T >
void swap (T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
int main ()
{
char a = 'a';
char b = 'b';
swap (a, b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
return 0;
}
the code can not be compiled under linux KDE command line (gcc compiler).
however if I change “using namespace std” into “using std::cout; using std::cin using std::endl” the program can be compiled and run well. what’s wrong with it?
Thank you very much
Here is what VC++ says:
The problem is: std namespace already contains the template function swap.