考虑以下C ++代码
template <class... Args>
void f (const int x, const int y, Args&&... args) {
// Do something
}
据我了解,Args
在这里可以是左值引用或右值引用,具体取决于编译时的类型推导。
因此,我应该能够使用-]调用该函数
float x = 40.0; f<int, float, double>(10, 20, 30, x, 50.0);
这给我一个错误,说它不能将类型
float
的x转换为类型float&&
。
如何使用带有接受左值和右值引用的可变参数模板定义函数。
考虑下面的C ++代码模板
据我了解,
Args
在这里可以是左值引用或右值引用,具体取决于编译时的类型推导。
如果指定参数,则必须提供左值参考: