August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
对于任何可用范围for遍历的序列(如容器),可编写如下函数计算其元素值的和:
模板参数Value和函数参数v使得调用者可以指定累加器(用于求和的变量)的类型和初始值:
将一些int累加到一个double中是为了得体地处理超出int表示范围的数值。注意sum<Sequence,Value>的模板参数类型是如何根据函数实参推断出来的。幸运的是,我们无须显式地指明这些类型。
这里的sum()可以看作标准库accumulate()的简化版本(参见13.4节)。
函数模板可以用于成员函数,但不能是virtual成员。因为编译器不知道这种模板在程序中有哪些实例,因此无法为其生成vtbl(参见4.4节)。
Read now
Unlock full access