Non sto cogliendo l'idea da questa citazione di Stroustrup alla pagina 862 della "4 ° edizione del linguaggio di programmazione C ++" alla fine del primo paragrafo (ho evidenziato la parte pertinente):
Building the comparison criteria into a sort function is unacceptable because the same data can be sorted according to different criteria. This is why the C standard-library
qsort()
takes a comparison function as an argument rather than relying on something fixed, say, the<
operator.On the other hand, the overhead imposed by a function call for each comparison compromises
qsort()
as a building block for further library building. For almost every data type, it is easy to do a comparison without imposing the overhead of a function call.Is that overhead serious? In most cases, probably not. However, the function call overhead can dominate the execution time for some algorithms and cause users to seek alternatives.
Che cos'è un esempio di confronto che non è una funzione?
Perché fornire un confronto tra template e un algoritmo di stl come std::sort
potrebbe direttamente confrontare invece di richiamare una chiamata di funzione?