【发布时间】:2020-04-06 23:33:45
【问题描述】:
考虑以下 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);
这给了我一个错误,说它无法将 x 从类型 float 转换为类型 float&&。
如何使用同时接受左值和右值引用的可变参数模板定义函数。
【问题讨论】:
标签: c++ c++11 variadic-templates lvalue rvalue