什么是引用折叠Reference Collapsing ?
引用折叠在泛型编程中非常有用,因为它确保在模板参数传递过程中正确地处理引用类型,避免不必要的复制和转移,同时保留引用语义。例如,在实现转发函数(forwarding function)时,引用折叠允许保持参数的值类别(lvalue或rvalue),从而正确地将参数转发给其他函数。
注意:引用折叠只在模板类型推导(template type deduction)和类型别名(type aliasing)时发生,对于已知类型的对象和函数参数不会发生引用折叠
引用折叠规则如下:记忆诀窍:凡是折叠中出现左值引用,优先将其折叠为左值引用。