模版型别推导 函数模版大致形如 template<typename T> void f(ParamType param); 模版函数的调用形如 f(expr); 在编译期,编译器会通过expr推导两个类别。一个是T的类别,一个是ParamType的类别。由于ParamType常包含修饰词(如const T&),ParamType的类别可能会与T类别不同。 T的类别推导结果和传递给函数的实参类型不一定相同。T的类别推导结果,不仅仅与expr类型有关,还与ParamType的形式有关。分为以下三种情…