T &&实例化为int&的原因是因为T &&是一个右值引用类型,而int&是一个左值引用类型。在C++中,右值引用可以绑定到将要销毁的临时对象,而左值引用只能绑定到具有标识符的对象。
当使用T &&实例化为int&时,意味着我们将右值引用绑定到一个左值上,这是不允许的,因为右值引用的主要目的是为了支持移动语义和完美转发。
在这种情况下,编译器会发出错误,因为int&是一个左值引用类型,而T &&是一个右值引用类型,它们之间存在类型不匹配。
需要注意的是,T &&实例化为int&这种情况是不合法的,正确的实例化应该是T &&实例化为int。
领取专属 10元无门槛券
手把手带您无忧上云