T &&和int &&之间的根本区别是什么?

时间:2020-05-21 20:07:02

标签: c++ templates move-semantics rvalue-reference

谁能解释一下这两个功能之间的区别?

template<typename T>
void f(T&& a) {
}


void f(int&& a) {
}

int main(){
    int a = 3;
    f(a);
}

如果我只有模板版本,则代码可以编译并正常工作。
但是,如果我删除模板并保留int &&版本,则编译器会抱怨,我必须
将调用转换为f(std :: move(a))使其起作用。
有人可以在这里给我解释一下吗?
预先感谢。

0 个答案:

没有答案