我问这个问题是因为对下面问题的接受答案感到困惑:
Why can't we initialize a reference to const int
with an rvalue volatile int&&
?
对于那里所述问题的案例1,为什么它应该出现在标准中提到的以下部分:
如果初始化表达式是xvalue(但不是位字段),则类prvalue,数组prvalue或函数lvalue和“cv1 T1”与“cv2 T2”引用兼容,或
根据我的知识,它不应该出现在本节中,因为volatile int && bar()
返回的xvalue属于volatile类型,而const int &
与volatile
xvalue不兼容,因此它应该转到引用初始化的最后一部分,与案例2相同,应创建临时,案例1也应作为case2传递。
请帮我澄清一下。