为了更好地理解模版,你需要知道万能引用,在模版推导中,它有着特殊的规则。在这篇文章里,我将教你区分万能引用和右值引用。 定义:万能引用可用于绑定左值和右值,只会出现在模版函数的入参中或者auto的推导中;右值引用只能用于绑定右值。例子如下: void f(Widget&& param); // 右值引用 Widget&& var1 = Widget(); // 右值引用 auto&& var2 = var1; // 万能引用!!! template<typename T> void f(std::vector<T>&...