【发布时间】:2022-01-20 01:33:12
【问题描述】:
最近,我开始学习有关通用参考https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers 的知识,上面写着Widget&& var1 = someWidget; //here, "&&" means rvalue reference。我知道 "&&" 可以是通用引用或右值引用,但我认为somewidget 必须是左值,这里没有推导,所以Widget&& && 必须是右值引用,这就是问题所在。右值引用可以接受左值吗,我了解到左值引用可以接受左值,而const左值引用可以接受右值,但是右值引用只能接受右值,那么这个说法有问题吗?或者我想念的东西
【问题讨论】:
-
"可以右值引用接受左值"。不,
someWidget只是一个占位符。更好的例子可能是= getSomeWidget(),该函数/占位符可能返回正确的类型。 -
so
someWidget不是一些已经存在的 Widget 变量的名称
标签: c++ reference rvalue-reference universal