理解模板类型推导_1.0
一段伪码
调用会是这样:
在编译的时候,编译器通过 expr 来进行推导出两个类型:一个是 T 的,另一个 是 ParamType 。通常来说这些类型是不同的,因为 ParamType 通常包含一些类型的装饰,比 如 const 或引用特性。
举个例子,模板通常采用如下声明:
如果有这样的调用:
在上面的例子中, x 是一个 int , T 也就被推导成 int 。
T 的类型不仅和 expr 的类型独立,而且还和 ParamType 的形式独立。( f(expr); )