First : Very nice, I'm impressed.

However, I am still not seeing this Qsort() as being better
than std::sort. Here are the results that I got.

System 1 : NT , PIII @500 MHz (dual) , 384 MB RAM , VC++ version 5
System 2 : 98 , PIII @500 MHz , 512 MB RAM , VC++ version 6
System 3 : Irix , R10000 @ 250 MHz (dual) , 384 MB RAM, g++ (ver ?)

In the tables below, the first number is for the first
system, the second number for the second system, etc.

(the forum might mess up the spacing)

===========================================================
vector<int> :

std::sort using 2 function call : 484 , 860 , 1180
std::sort using functor : 590 , 470 , 1210
Qsort : 1062 , 1100 , 2320

===========================================================
vector<double> :

std::sort using 2 function call : 781 , 1040 , 1520
std::sort using functor : 1062 , 1040 , 1660
Qsort : 2031 , 2480 , 3150

===========================================================
vector<structure> , direct sort :

std::sort using 2 function call : 13960 , 14200 , 47080
std::sort using functor : 14248 , 14310 , 46750
Qsort : 10150 , 10120 , 21010
===========================================================
vector<structure> , indirect sort :

std::sort using functor : 5950 , 5910 , 25230
Qsort : 8422 , 8650 , 25420
===========================================================

So the fastest way to sort a structure ? As you suggested,
an indirect sort.