引用折叠规则 (函数转发时用得到)
对于C++语言,不可以在源程序中直接对引用类型再施加引用。T& &
将编译报错。C++11标准中仍然禁止上述显式对引用类型再施加引用,但如果在上下文环境中(包括模板实例化、typedef、auto类型推断等)如出现了对引用类型再施加引用,则施行引用塌缩规则(reference collapsing rule)又译作引用折叠规则:
- T& &变为T&
- T& &&变为T&
- T&& &变为T&
- T&& &&变为T&&
对于C++语言,不可以在源程序中直接对引用类型再施加引用。T& &
将编译报错。C++11标准中仍然禁止上述显式对引用类型再施加引用,但如果在上下文环境中(包括模板实例化、typedef、auto类型推断等)如出现了对引用类型再施加引用,则施行引用塌缩规则(reference collapsing rule)又译作引用折叠规则: