Возможно ли сделать void foo
универсальной ссылкой вместо ссылки rvalue в случае шаблона шаблона, например, в следующем коде?unversal reference in void foo (T <U> && param)
#include <iostream>
#include <string>
using namespace std;
template <int I>
struct s
{
string str;
};
template <template<int> class T, int U>
void foo(T<U>&& param)
{
cout << param.str << endl;
}
int main()
{
s<5> thing;
foo(thing);
}
Я получаю following error:
error: cannot bind 's<5>' lvalue to 's<5>&&'
№ Ссылка для пересылки (официальное название так называемой «универсальной ссылки») должна быть «T &&», где «T» - это параметр типа шаблона, который выводится. –