在Stroustrup的C++编程语言中,当他讨论标准库的设计时,他说,
例如,将比较标准构建为排序函数是不可接受的,因为可以根据不同的标准对相同的数据进行排序.这就是为什么C标准库
qsort()
将比较函数作为参数而不是依赖于固定的东西,比如<运算符.另一方面,每次比较的函数调用所施加的开销qsort()
作为进一步库构建的构建块而妥协.
以上这些对我有意义.但在第二段中,他说,
这个开销严重吗?在大多数情况下,可能不是.但是,函数调用开销可能会占用某些算法的执行时间,并导致用户寻找替代方案.通过§13.4中描述的模板参数提供比较标准的技术解决了这个问题.
在§13.4中,比较标准被定义为具有静态成员函数的类(进行比较).当这些类用作模板参数时,仍然通过其静态成员函数进行比较.在我看来,仍然会有调用静态成员函数的开销.
Stroustrup的意思是什么?