Not true (not in U++ nor STL). That is basically a reason for those 2 overloads. E.g. try Sort with just const variant...
The "C& c" variant is definitely not needed. The "C&& c" variant is an universal reference and it is a complete replacement of the "C& c" variant. I tried to compile TheIDE with "C& c" commented out and it compiles just fine.
theide is not a good representative, as there probably is not a single use of subrange.
It is quite possible that C& is not needed, but I think I had some issues with at least some compilers with that approach. But it would really be a great if I could remove them...
Quote:
And I'm still a little bit confused about what is IterSwap for. What is wrong with the regular Swap?
When sorting Array, you can swap just pointers instead of objects - it is optimization.