相关疑难解决方法(0)

使用rvalue/lvalue了解模板参数推导

这是函数模板的后续跟不识别左值

让我们玩下面的代码:

#include <iostream>
template <class T>
void func(T&&) {
  std::cout<<"in rvalue\n";
}

template <class T>
void func(const T&) {
  std::cout<<"in lvalue\n";
}

int main()
{
    double n=3;
    func<double>(n);
    func(n);
}
Run Code Online (Sandbox Code Playgroud)

它打印:

in lvalue
in rvalue
Run Code Online (Sandbox Code Playgroud)

我不明白第二次电话会发生什么.编译器如何解析模板参数?为什么没有歧义?

c++ templates rvalue lvalue c++11

8
推荐指数
1
解决办法
824
查看次数

标签 统计

c++ ×1

c++11 ×1

lvalue ×1

rvalue ×1

templates ×1