作为主题,您可以检查https://godbolt.org/z/qtjVP6上的相关代码。
为了方便起见,代码发布在下面:
#include<typeinfo>
#include<iostream>
class Widget{};
Widget someWidget;
int main()
{
Widget&& var1 = Widget{}; // here, “&&” means rvalue reference
auto&& var2 = var1; // here, “&&” does not mean rvalue reference
std::cout << typeid(var2).name() << std::endl;
}
输出:6Widget
[echo 6Widget | c++filt -t
说Widget
。
我很高兴在这个问题上有所帮助。
每C++ Reference(强调我的意思:):>>
1]引用表示类型类型的
的std::type_info
对象。如果type是引用类型,则结果引用表示[。std::type_info
对象。因此,对于type = T&
,typeid(type)
将给出有关T
的结果(已删除参考)。IMO很容易理解,因为出于所有目的,类型为
T&
的变量在功能上等同于类型为T
的一个。