As others have already said, it all depends. However I do not agree that 'just use C qsort' is always good enough. If your application is doing intensive large searches then optimizing your sort algorithm can make a big difference. A huge amount of research effort has gone into developing search algorithms because of this. That said, I would pretty much always begin with qsort, unless I need a stable sort (see below).
C++ qsort vs C qsort is also quite interesting. C++ qsort is something of the poster child for static polymorphism aka template programming. In C the comparison function is a pointer to a function. It is very difficult for the compiler to optimize calls to this function (maybe possible with LTO). On the other hand, C++ qsort uses template functions which the compiler can easily inline. Typically this will give something like a factor of 2 speedup for C++.
One more thing that you may need to consider is whether you need a stable sort or not. Stable sorts preserve the order of equivalent elements. qsort is not a stable sort, and generally the first choice algorithm for stable sorting is heapsort.