I have defined such function:
template<typename T>
void SwapMe(T *first, T *second)
{
T tmp = *first;
*first = *second;
*second = tmp;
}
Then using it like so:
SwapMe(&data[i], &data[j]);
As you see, I'm not using explicitly SwapMe<T>(...);
but it does work!
Why C++ standard allows to avoid explicitly specifying the type of the arguments ?